2010-03-31 7 views
3

J'utilise C# asp.net pour envoyer des messages électroniques. Si l'adresse email envoyée depuis (message.From) peut être n'importe quelle adresse, il est toujours possible que l'application demande un rapport si l'e-mail a été renvoyé par le serveur.Attraper un courriel rebondi dans ASP.NET C#

Répondre

1

Vous avez besoin ici d'un programme qui apparaît de temps en temps, et vérifiez s'il y a un retour de l'email que vous envoyez.

Recherche sur google pour asp.net pop3 pour trouver des idées et des modules qui font cela. J'ai testé moi-même beaucoup d'entre eux et pour moi l'un des meilleurs est celui qui peut lire et ce que vous dites - mais ce n'est pas gratuit. La dernière tâche, la tâche que vous demandez est une tâche difficile, et ne peut pas être résolu avec une seule fonction et vous avez toujours besoin de base de données pour enregistrer ce que vous envoyez et ce qui a été rebondi.

0

Pour un rebond où un e-mail est renvoyé à l'expéditeur en disant une erreur, vous devrez utiliser la technique décrite par Aristos dans ce fil de discussion.

Vous pouvez vérifier les erreurs au point d'envoyer en attrapant un SmtpException:

Il n'y a pas de méthode infaillible pour ce faire que parce que de nombreux serveurs de messagerie écarterons simplement email plutôt que de répondre. Ceci afin d'empêcher les spammeurs de détecter si la boîte de réception de courrier électronique est un compte réel ou non.

0

Si vous avez accès à la structure de dossiers de smtp, vous pouvez analyser les fichiers dans le dossier inetpub/mailroot/badmail. Ces fichiers auront l'adresse et la raison de la non-livraison en texte brut.

0

Les e-mails renvoyés peuvent prendre des secondes, des minutes, des heures ou des jours, selon le serveur qui renvoie les e-mails (c'est-à-dire le serveur auquel vous envoyez des e-mails). En outre, les emails sont envoyés en utilisant le client SMTP et reçus sur POP et comme les emails rebondis doivent être reçus pour noter le rebond, il n'y a aucun moyen d'obtenir une erreur de retour lorsque vous envoyez un email.

Vous devez ajouter l'adresse de réponse au message que vous envoyez en utilisant le client SMTP.

message.ReplyToList.Add("<reply-to-address-for-detecting bouncing back emails>"); 

Ensuite, vous devez surveiller l'adresse de réponse. Maintenant, pour surveiller cela en utilisant C#, vous devez créer POPClient() associé à l'adresse reploy-to en utilisant un service ou un arrangement de vérification périodique. Here est le lien StackOverflow montrant comment détecter les emails reçus. Vous pouvez même avoir l'adresse de support informatique comme réponse à l'adresse si applicable à votre organisation, de sorte que lorsque les e-mails sont renvoyés, vous serez averti (uniquement si non fréquent)