Question

J'ai eu ce noté sur une partie de mon code pour un certain temps:

/**
 * Add a BCC.
 *
 * Note that according to the conventions of the SMTP protocol all
 * addresses, including BCC addresses, are included in every email as it
 * is sent over the Internet. The BCC addresses are stripped off blind
 * copy email only at the destination email server.
 *
 * @param string $email
 * @param string $name
 * @return object Email
 */

Je ne me souviens pas où je l'ai eu ( source possible) mais ne devraient pas être pertinents à cette question. En gros, chaque fois que j'essaie d'envoyer un e-mail via SMTP avec carcinomes basocellulaires les adresses BCC ne sont pas cachées - J'ai lu toute la RFC pour le protocole SMTP (il y a quelques années) et je ne pense pas que je manque quelque chose <. / p>

La chose étrange est, si je vous envoie un e-mail avec l'aide de la carcinomes basocellulaires fonction intégrée de mail() tout fonctionne juste et j'ai aucune idée pourquoi -. Je voudrais rouler mon email de l'expéditeur, mais je ne comprends pas ce

Quelqu'un peut-il s'il vous plaît à faire la lumière sur ce sujet sombre?

Était-ce utile?

La solution

Les adresses BCC ne sont pas enlevèrent au serveur de messagerie de destination. Cela ne veut pas comment cela fonctionne.

Comment SMTP fonctionne réellement

  • L'expéditeur envoie une liste de commandes de RCPT TO au serveur SMTP, une pour chaque adresse e-mail du récepteur, et cette commande ne distingue pas si le récepteur est à la normale, CC ou d'un récepteur de type BCC.
  • Bientôt après avoir appelé la commande qui indique au serveur SMTP qui est l'expéditeur, qui est le serveur, et tout le reste, alors seulement l'expéditeur appellera la commande DATA, dans lequel contiendra le contenu du courrier électronique - qui se composent de la les en-têtes de courrier électronique et corps - celui qui sont reçus par les clients de messagerie. Parmi ces en-têtes de courrier électronique sont habituels de l'adresse, à l'adresse, l'adresse CC.
  • L'adresse BCC n'apparaît pas au récepteur, tout simplement parce qu'il est pas imprimé sous la commande DATA, non pas parce que le serveur SMTP de destination les privait loin. Le serveur SMTP de destination juste faire référence au RCPT TO pour la liste des adresses e-mail qui doit recevoir le contenu e-mail. Il ne se soucie pas vraiment si le récepteur est en A, CC ou BCC liste.
    Mise à jour (à préciser):. adresses e-mail BCC doivent être répertoriés dans la liste de commande RCPT TO, mais l'en-tête BCC devrait pas être imprimé sous la commande DATA

Citant une partie de la RFC que je pense est pertinent à votre cas:

  

S'il vous plaît noter que les données de courrier comprend les éléments d'en-tête de note de service tels que la date, Objet, A, Cc, De [2].

Laminage votre propre e-mail expéditeur

Un couple d'années, je pense franchement il y a, est un temps assez long retour à supposer que vous mémorisez encore de bout en bout de RFC 821 . :)

Autres conseils

Très en retard, mais la réponse acceptée est essentiellement erronée.

Tout d'abord, SMTP n'a rien à voir avec BCC. SMTP, en tant que protocole, ne concerne que la voie de retour (la demande de MAIL), une liste de destinataires (la demande de RCPT), et les données à transférer (la demande de DATA). Si vous souhaitez envoyer un courriel à quelqu'un via SMTP, vous devez fournir leur adresse dans une demande de RCPT, période.

Le contenu d'un e-mail - le DATA, efficacement - sont exprimées de façon totalement séparée, en RFC2822 . Il y a beaucoup de latitude dans la façon dont BCC doit être manipulé. La spécification donne 3 façons de gérer BCC, et que l'un d'eux est le BCC dépouillé tout en préparant l'e-mail. Si j'utilise Thunderbird comme client de messagerie, par exemple, et de pointer vers un serveur SMTP, puis regarder le message sur la ligne, je trouve que la BCC Thunderbird est allé (du DATA SMTP) et la connexion SMTP contient à la place une demande standard RCPT pour l'adresse bcc'ed. Ainsi, Thunderbird convertit BCC à RCPT, mais ce n'est pas la seule façon de le faire.

Un autre endroit à la poignée BCC est au MTA - autrement dit, quel que soit le serveur SMTP de votre client de messagerie est pointé. Sendmail, par exemple, les recherches tous les To, Cc, et les lignes de Bcc dans le DATA SMTP et construit ensuite une liste d'adresses de ces lignes, puis Elimine la ligne Bcc. Vous pouvez persuader Sendmail de garder le Bcc si vous voulez. Si sendmail n'est pas le MTA de destination, il se connecte à un autre MTA via SMTP et envoyer les adresses des destinataires via RCPT. En d'autres termes, si sendmail le MTA de destination, et il obtient un Bcc, il bande dehors, contrairement à la déclaration de Amry.

Il y a aussi une certaine confusion dans les commentaires. Vous pouvez spécifier les adresses RCPT à tout domaine, non seulement une liste d'adresses dans le même domaine. Le MTA doit rechercher les enregistrements MX pour les domaines de destination au travail où tout à envoyer. Les déclarations google.com et yahoo.com ont tort.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top