2010-09-03 7 views
2

J'ai écrit un e-mailer automatisé pour les factures de mon entreprise. Les choses vont bien et dandy jusqu'à ce que je rencontre des courriels qui ne sont pas livrés. Après une inspection plus poussée, notre expert en informatique a constaté que les messages envoyés par l'expéditeur contenaient des en-têtes MessageID incorrects.SmtpClient Envoi de mauvais ID de message

Message-ID: <98bcd4e6-be30-4b22-8026-6047c8231b1f>

où ils devraient ressembler à ceci:

Message-ID: <[email protected]AIN.mycompany.com>

Je l'ai regardé autour de l'Internet pour 'message-id invalide' lié à la SqlClient de .NET sans succès. C'est la dernière pierre angulaire de tout ce système, j'espère qu'il y a une réponse là-bas.

code:

MailMessage message = new MailMessage(); 

foreach(string recipient in msgRecipients) 
{ 
    message.To.Add(new MailAddress(recipient)); 
} 

message.From = new MailAddress(InvoiceEmailerConfig.Section.EmailCourier.FromEmail); 
message.ReplyTo = new MailAddress(InvoiceEmailerConfig.Section.EmailCourier.ReplyToEmail); 
message.Subject = messageHeading; 
message.Body = msgBody; 

SmtpClient mailer = new SmtpClient(SmtpServer, SmtpServerPort); 
mailer.DeliveryMethod = SmtpDeliveryMethod.Network; 
mailer.Credentials = new NetworkCredential(SmtpLogin, SmtpPassword); 
mailer.Send(message); 

Répondre

3

J'ai eu le même problème sur le serveur RHEL, tourné mon Sendmail n'a pas été correctement configuré. Je pense que vous devriez vérifier les paramètres Exchange.

Vous pouvez également définir explicitement l'ID de message, Exchange utilisera cet ID de message pour envoyer un e-mail.

MailMessage message = new MailMessage(); 
message.Headers.Add("Message-ID", "MyMessageID"); 
+0

Savez-vous s'il y a des stipulations dans le champ ID du message? Faut-il référencer quelque chose sur le serveur d'échange ou puis-je générer quelque chose de random @ mydomain.com? – Aren

+0

J'ai défini les en-têtes manuellement pour un portail de messagerie électronique dans l'un de nos produits, ce qui m'aide à rapprocher les réponses. Vous pouvez définir manuellement l'en-tête de l'identificateur de message sur un ID de message valide comme indiqué par Alex et cela devrait fonctionner correctement. –

+0

@Wil P: Donc, vous venez de générer un code HEX aléatoire de longueur appropriée? – Aren