Comment confirmer que le courrier a été livré ou non?
Ci-dessous est mon codage, il suffit de jeter un coup d'oeil
System.Net.Mail.MailMessage oMail = new System.Net.Mail.MailMessage();
System.Net.Mail.SmtpClient smtp = new System.Net.Mail.SmtpClient();
oMail.From = new System.Net.Mail.MailAddress("[email protected]");
oMail.To.Add(TextBox1.Text.Trim());
oMail.Subject = "Subject*";
oMail.Body = "Body*";
oMail.IsBodyHtml = true;
smtp.Host = "smtp.sendgrid.net";
System.Net.NetworkCredential cred = new System.Net.NetworkCredential("myusername", "mypassword");
smtp.UseDefaultCredentials = false;
smtp.Credentials = cred;
smtp.Send(oMail);
Ici, j'ai besoin de vérifier si le courrier a été livré ou pas.
source d'informationauteur sankar 2.0
Vous devez vous connecter pour publier un commentaire.
Vous ne pouvez pas. Puisque vous utilisez SMTP, dans le cas général, il est impossible de dire si la livraison a réussi ou pas. Lire la spécification SMTP. Le courrier est acheminé tout en étant livrée, alors:
smtp.Send()
.Vous pouvez définir la
DeliveryNotificationOptions
propriété de laMailMessage
àOnSuccess
.Il n'y a plus d'infos à ce sujet ici: http://msdn.microsoft.com/en-us/library/system.net.mail.deliverynotificationoptions.aspx
et ici: http://msdn.microsoft.com/en-us/library/system.net.mail.mailmessage.deliverynotificationoptions.aspx
Comme cela a été souligné dans les commentaires, cette méthode n'est pas fiable à 100%. C'est juste une option.
Voici quelques bonnes pratiques pour assurer la délivrabilité des emails:
le compte de messagerie utilisant les protocoles pop3 et regarder pour rebondir messages.
comme cet e-mail de validation de la bibliothèque:
http://www.kellermansoftware.com/p-37-net-email-validation.aspx
Dans le cas où quelqu'un trébuche à travers. Voici mon expérience sur un vieux Win 2003 server avec Exchange. Mon .Net application utilise le protocole SMTP pour envoyer des e-mails et utilisé une adresse de groupe comme le "De" de sorte que toute les réponses irait à l'ensemble du groupe. C'est un envoi de l'opération et nous voulions quelqu'un dans le groupe pour répondre à toutes les réponses. Nous nous attendions à ce non les avis de livraison pour être envoyé au groupe. Il ne se produit pas. Je suis même allé dans le Suivi des Messages et vu que l'Échange a dit qu'il a envoyé la notification pour le groupe, mais ils n'ont jamais eu. Ensuite, je suis allé dans les Propriétés du Serveur Virtuel SMTP et entrée dans le groupe adresse e-mail dans le "Envoyer une copie du Rapport de Non-remise pour:". Même résultat, le Suivi des Messages dit qu'il a envoyé pour le groupe, mais il n'a jamais été livré. Apparemment, les avis de non-livraison ne pourra être livré à une adresse de courriel d'une personne et non à un groupe. Je l'ai changé pour un individu d'adresse et ça marche.
Si vous ne recevez pas toutes les exceptions dans votre code ou sur votre serveur SMTP, vous pouvez supposer qu'il a été livré. C'est un problème avec l'adresse e-mail, il n'y a aucun moyen de garantir la livraison.
Si vous avez accès au serveur contenant le journal SMTP, selon le type de serveur utilisé et le niveau de détail utilisé, vous pourriez être en mesure d'obtenir une bien meilleure idée que le succès réel de la prestation.
Par exemple, si vous utilisez SmarterMail, vous pourriez écrire un simple analyseur de lire le journal smtp et de l'informer de votre demande. Non pas que cela ne devrait pas être une opération de blocage, comme si votre email est greylisted, il peut prendre plusieurs minutes avant qu'il soit livré.
Une autre option est de créer un fourre-tout "noreply" adresse e-mail, et envoyer vos e-mails avec un e-mail-id inclus dans l'expéditeur ie [email protected] et utiliser un serveur pop3 lecteur à consulter la boîte de réception pour le retour des e-mails. À l'aide de l'adresse e-mail dans la partie "expéditeur", vous pouvez travailler e-mail n'a pas pu être envoyé. Vous pouvez également faire un filtrage déterminer si ses un "incapable de livrer" ou simplement un "out of office" type de réponse.
Beaucoup d'options disponibles, tout dépend de la façon dont beaucoup de sueur que vous voulez mettre.