Question

J'utilise un répertoire de collecte Exchange 2007 pour envoyer des courriels à partir de mon application ASP.NET avec System.Net.Mail.SmtpClient . Ainsi, j'utilise SmtpClient.DeliveryMethod = SmtpDeliveryMethod.SpecifiedPickupDirectory . Il envoie bien des courriels, mais j'ai alors remarqué que BCC ne fonctionnait pas du tout. Le fichier placé dans le dossier de collecte semble avoir les bons paramètres, mais Exchange ignore la liste X-Receiver. Voici un exemple du fichier EML en cours de création:

X-Sender: "Joe" <joe@example.com>
X-Receiver: david@example.com
X-Receiver: contact@example.com
X-Receiver: lindsey@example.com
MIME-Version: 1.0
From: "Joe" <joe@example.com>
To: david@example.com
Date: 10 Mar 2009 9:32:27 -0500
Subject: Test Message
Content-Type: text/html; charset=us-ascii
Content-Transfer-Encoding: quoted-printable

<p>Test Message</p>

contact @ et lindsey @ sont les destinataires du Cci. Lorsque j'utilise un envoi réseau, cela fonctionne bien. BCC cesse de fonctionner uniquement avec le répertoire de collecte. Donc, vous savez, j'utilise Windows Server 2008 et ASP.NET 3.5 / C #.

Solution de contournement

Il semble qu'Exchange 2007 ignore le X-Receiver et s’attende à voir Cci: à la place. J'ai donc eu recours à mailMessage.Headers.Add ("Cci", bccList) où bccList est une liste d'adresses électroniques délimitées par des points-virgules. Cela fonctionne bien.

Mais, comme l'a souligné Chase Seibert, si vous regardez l'en-tête du message dans le client de messagerie, vous pouvez toujours voir tous les récepteurs X répertoriés. Bien que Bcc soit retiré et donc caché des destinataires. Ainsi, vous obtenez l'effet d'un Cci avec la possibilité que quelqu'un ouvre le message et voit tous les Cci. Je pense que le meilleur moyen de supprimer la liste X-Receivers est de ne rien inclure dans la propriété mailMessage.Bcc.

Était-ce utile?

La solution

Cela fonctionne certainement dans Windows 2003 Server avec seulement l'implémentation MS SMTP livrée avec le système d'exploitation. D'après ce que je comprends, Exchange utilise le même service pour l'envoi.

Bien que cela ne réponde peut-être pas à votre question, je tenais à souligner que la méthode Pickup présente un inconvénient dont vous n’êtes peut-être pas au courant. En règle générale, MS SMTP supprime les en-têtes BCC et X-Recipient de la EML lors du transport entrant .

Lorsque vous placez la EML dans Pickup, vous ignorez cette étape. Ainsi, les destinataires distants pourront réellement VOIR les destinataires BCC s’ils consultent l’en-tête du courrier électronique. Essayez d’envoyer un email à un compte Gmail et à un autre utilisateur BCC. Si vous affichez l'en-tête dans Gmail, vous verrez le destinataire Cci.

Je recommanderais d'utiliser SMTP pour transmettre ce message à la place.

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