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);
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
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. –
@Wil P: Donc, vous venez de générer un code HEX aléatoire de longueur appropriée? – Aren