Notification de livraison dans SMTP
Code ci-dessous est workin amende . Cependant j'ai besoin d'obtenir de l'Échec ou le Succès de la Notification à une adresse Spécifique ([email protected]). Mais je suis la réception de la Notification de la Livraison du courrier à FromMail adresse([email protected]). Pouvez-vous svp m'aider à résoudre ce problème?
SmtpClient smtpClient = new SmtpClient();
MailMessage message = new MailMessage();
MailAddress fromAddress = new MailAddress("[email protected]", "BALA");
MailAddress adminAddress = new MailAddress("[email protected]");
smtpClient.Host = "Mail Server Name";
smtpClient.Port = 25;
smtpClient.UseDefaultCredentials = true;
message.From = fromAddress;
message.To.Add(_sendTo); //Recipent email
message.Subject = _subject;
message.Body = _details;
message.IsBodyHtml = true;
message.Headers.Add("Disposition-Notification-To", "[email protected]");
message.DeliveryNotificationOptions = DeliveryNotificationOptions.OnSuccess;
message.ReplyTo = adminAddress;
smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;
smtpClient.Send(message);
source d'informationauteur Melody | 2012-10-09
Vous devez vous connecter pour publier un commentaire.
La réponse courte est ce que vous demandez ne peut être fait directement de la manière dont vous assumez.
Cela ne fonctionne que dans certaines conditions. La méthode la plus simple pour décrire le serait si le serveur SMTP que vous utilisez pour envoyer le message, le serveur qui héberge le domaine de l'email du destinataire des messages (le serveur vous référer lors de la configuration de votre .L'HÔTE de la propriété de smtpClient). Donc, si vous avez été seulement l'envoi à des destinataires sur votre serveur de messagerie SMTP local, alors ce pourrait être assez fiable. Mais cela dépend du serveur SMTP spécifique du logiciel utilisé et, potentiellement, sur la façon dont il est configuré.
Pour expliquer pourquoi il en est, vous devez vous rendre compte que seul le dernier serveur de messagerie SMTP reçoit le message qui abrite en fait souhaité adresses e-mail, sera en mesure d'effectuer une réponse à la question, est-ce une adresse de courriel valide. Si le message doit passer par tout les autres serveurs de messagerie sur le chemin pour arriver à cette finale serveur faisant autorité, le message doit être transmis de manière séquentielle à partir d'un serveur pour le serveur suivant dans la chaîne jusqu'à ce qu'il atteigne la finale serveur faisant autorité. Cela signifie qu'il n'y a pas une méthode garantie pour l'authentification d'une adresse spécifique. Ajoutez à cela le fait que certains domaines sont configuré pour agir comme un trou noir et d'avaler de manière illégitime du courrier adressé, et vous pouvez voir qu'il ya beaucoup de raisons pourquoi vous ne pouvez pas compter sur cette méthodologie.
De nombreux messages à des domaines externes vont avoir à frapper au moins un serveur SMTP et selon la façon dont le serveur répond ou transfère le courrier, il permettra de déterminer les résultats, pour une réception de domaine. En fait, le suivi de l'adresse DE l'expéditeur des messages renvoyés n'est pas infaillible, soit que mon précédent commentaire à propos de certains hôtes mettre un peu de messages dans un trou noir si elles ne semblent pas être valide.
Si le destinataire de l'e-mail est valide vous n'obtenez pas immédiatement un valeur de retour sur le succès de la transmission du message; voir la signature:
Le serveur SMTP avise l'expéditeur (ou celui que vous spécifiez pour la notification) presque immédiatement avec un "non Livrable" notification lorsque le destinataire de l'e-mail n'est pas valide/faux.
Serveurs SMTP sont tenus périodiquement nouvelle tentative de livraison. Lorsque le destinataire de l'e-mail est une adresse valide, mais pour une raison quelconque, le serveur SMTP n'a pas pu livrer le message, le serveur SMTP sera de retour un message d'erreur à l'expéditeur s'il est impossible de remettre le message après un certain laps de temps.
RFC 2821 contient plus de détails.
De la section 2.1 Structure de Base
Voir les sections 4.5.4 et 4.5.5
De l'article 6.1 de la fiabilité des livraisons et des Réponses par e-Mail
Selon MSDN l' .Envoyer va jeter un SmtpFailedRecipientsException EDIT: si le MESSAGE ne peut pas être remis à un ou plusieurs destinataires. Vous pouvez trouver les informations sur ce qui l'un dans l'Échec de la propriété de Destinataire dans l'exception.
Ainsi, si vous essayez d'attraper cette exception et de valider l'adresse que vous recherchez dans l'Exception, qui pourrait vous aider.