【问题标题】:How to handle bounce email messages when you send emails on behalf of customer当您代表客户发送电子邮件时如何处理退回的电子邮件
【发布时间】:2014-02-17 13:54:22
【问题描述】:
我需要有关处理/跟踪退回电子邮件的建议。
我们有一个场景,我们需要代表我们的客户向收件人发送电子邮件。
假设我们需要将电子邮件发送到 user@recipient.com,发件人为 emailer@cusotmer.com,但是当此电子邮件失败时,我们需要在 mybouncetracker@mydomain.com 上接收退回/失败通知
我尝试使用回复/返回路径,但都被替换为 emailer@cusotmer.com。
我们无法处理退回邮件,因为我们不拥有 emailer@cusotmer.com 的收件箱。
请帮忙!!..
我们在 C#.net 上创建了 smtp 客户端
【问题讨论】:
标签:
c#
email
smtp
email-bounces
【解决方案1】:
请注意,我们不能依赖回复标头或在原始邮件标头中插入自定义 ID,因为邮件服务器返回的退回邮件因服务器而异。他们中的许多人只是以纯文本的方式退回来,说发送失败,但不包括原始消息。
我的建议是使用带有编译选项的正则表达式(为了提高性能)来扫描消息。
阅读完邮件内容后,可以使用以下代码将邮件归类为软退回邮件,表示邮件发送失败:
string pattern = "failed after \S+ sent[\s\n]the[\s\n]message";
Regex regexPattern = new Regex(pattern, RegexOptions.Compiled);
if (regexPattern.Match(myMessage.BodyHtml))
{
Console.WriteLine("This is a soft bounce");
}
您可以添加更多模式来分类更多消息。