2008-09-23 7 views
13

Nous avons une application Web professionnelle typique qui permet à nos utilisateurs d'envoyer des courriels avec des offres à leurs clients. Nous définissons le courrier électronique de l'utilisateur dans le champ FROM afin que le client puisse répondre directement à l'utilisateur. Le problème est que, à cause du protocole SMTP, la notification par e-mail non délivrée est renvoyée à notre adresse e-mail (l'adresse du compte à partir duquel nous envoyons des e-mails). Connaissez-vous une façon élégante de gérer ces e-mails non livrés? Je veux dire la manière la plus facile de laisser l'expéditeur savoir que son courrier n'a pas été livré.Traitement des courriels non livrés dans la webapp

Répondre

0

Exactement quelle routine utilisez-vous pour envoyer l'email? Nous envoyons des emails via SMTP brut en utilisant HTTP put_lines et les réponses rebondissent à l'adresse que nous nommons dans le champ FROM:

Voyez si votre wrapper API SMTP a une réponse à: champ

Certaines API peuvent ne pas fournir cette fonctionnalité, car elle augmente la possibilité de spamming.

3

Il y a 3 "en-têtes" dans les emails.

  1. De.
    • C'est ce que l'utilisateur voit comme le « initiateur »
  2. Répondre à.
    • C'est là un email est envoyé si une réponse est intented
  3. Return-Path.
    • C'est là qu'un email est routé dans le cas où la destination n'existe pas.

Vous voulez sans doute être mise en 3ème :)

(Note, certains serveurs ne pas répondre à ces messages perdus à tout dommage parce que récemment les spammeurs ont été là mettre les adresses qui ne sont pas leur propre, en faisant une 3ème attaque de rebond partiel en utilisant le système de réponse automatique pour transformer les serveurs de messagerie dans un relais ouvert)

Voir la section 4.4 du présent document pour plus de détails: http://www.faqs.org/rfcs/rfc822.html

17

Tout d'abord, il est important de comprendre la différence entre l'en-tête "From:" (que le destinataire voit dans son client de messagerie) et l'adresse de l'expéditeur (également appelée le chemin de retour de l'enveloppe ou l'argument SMTP "MAIL FROM" commander). L'adresse de l'expéditeur est l'endroit où les messages de rebond vont quand l'email ne peut pas être délivré, d'où l'autre chemin de retour de nom. SMTP ne limite pas l'adresse que vous utilisez comme adresse d'expéditeur (sauf qu'elle doit être syntaxiquement valide), mais quelle que soit la bibliothèque de client SMTP que vous utilisez, vous devez vérifier cela.

La modification de l'adresse de l'expéditeur est l'endroit où vous pouvez faire des choses intelligentes pour aider à détecter les rebonds de courrier électronique et les rapporter à la webapp ou à l'expéditeur. La chose la plus courante que vous verrez est d'encoder l'adresse destinataire dans l'adresse de l'expéditeur, par ex. avec une adresse d'expéditeur comme ceci: [email protected] Le MTA responsable de senderdomain.com doit savoir envoyer tous les e-mails pour [email protected] à [email protected] - mais c'est une exigence assez courante. Ensuite, vous prenez l'email qui est reçu, et au lieu d'essayer de travailler à partir du message de rebond dans le contenu (qui pourrait être dans n'importe quel format) qui était le destinataire, vous pouvez l'obtenir à partir de l'adresse du destinataire.

Vous pouvez également effectuer des opérations plus complexes, telles que le hachage de l'adresse du destinataire afin qu'il ne soit pas visible directement dans l'adresse de l'expéditeur, par ex. [email protected] Et vous pourriez inclure un identifiant pour l'e-mail qui a été envoyé, au cas où vous envoyez plusieurs emails à la même adresse et que vous voulez savoir lequel a été renvoyé.

Ces astuces sont appelées Variable Envelope Return Path ou VERP et sont couramment implémentées par le logiciel de liste de diffusion.

Questions connexes