Envoi d'un courrier électronique avec l'en-tête return-path à l'aide du serveur de messagerie virtuel Windows

StackOverflow https://stackoverflow.com/questions/464876

Question

J'essaie d'envoyer un courrier électronique à l'aide de la classe .NET MailMessage, qui peut également avoir l'en-tête return-path ajouté, de sorte que les rebonds reviennent sur une adresse électronique différente. Le code est ci-dessous:

MailMessage mm = new MailMessage(
    new MailAddress(string.Format("{0}<{1}>", email.FromName, email.FromEmail)), 
    new MailAddress(emailTo));

mm.Subject = ReplaceValues(email.Subject, nameValues);
mm.ReplyTo = new MailAddress(string.Format("{0}<{1}>", email.FromName, email.FromEmail));
mm.Headers.Add("Return-Path", ReturnEmail);

// Set the email html and plain text
// Removed because it is unneccsary for this example

// Now setup the smtp server
SmtpClient smtp = new SmtpClient();
smtp.Host = SmtpServer;
smtp.DeliveryMethod = SmtpDeliveryMethod.PickupDirectoryFromIis;

if (SmtpUsername.Length > 0)
{
    System.Net.NetworkCredential theCredential = 
        new System.Net.NetworkCredential(SmtpUsername, SmtpPassword);
    smtp.Credentials = theCredential;
}

smtp.Send(mm);

Chaque fois que je vérifie le courrier électronique envoyé, je vérifie l'en-tête et il semble toujours qu'il manque le chemin de retour. Est-ce qu'il me manque quelque chose pour configurer ceci correctement? Comme je l'ai dit plus haut, j'utilise le serveur de messagerie virtuel standard sur ma machine de développement (XP), mais il fonctionnera éventuellement sous Windows 2003.

Quelqu'un at-il des idées sur les raisons pour lesquelles cela ne se produit pas?

Était-ce utile?

La solution

Le chemin de retour est défini en fonction de l'enveloppe SMTP MAIL FROM. Vous pouvez utiliser la propriété Sender pour faire une telle chose.
Une autre discussion sur une question connexe que vous aurez tôt ou tard: Comment définir l'enveloppe SMTP MAIL FROM en utilisant System.Net.Mail?

Et d'ailleurs, si vous utilisez SmtpDeliveryMethod.PickupDirectoryFromIis, la propriété Sender n'est pas utilisée en tant que MAIL FROM; vous devez utiliser le réseau comme méthode de livraison pour conserver cette valeur. Je n'ai trouvé aucune solution de contournement pour ce problème.
PickupDirectoryFromIis, propriété de l'expéditeur et courrier SMTP de l'enveloppe

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