回复时如何维护/保留自定义电子邮件标题(X-header)

时间:2012-09-11 14:38:56

标签: c# asp.net .net smtp pop3

我正在使用以下代码从我的.NET应用程序发送电子邮件,这里我添加了自定义标题X-Company。 当收到电子邮件时,我会正确地获得此自定义标题,但每当我回复/转发此邮件时,自定义标题都不会回来。

MailMessage message = new MailMessage(From, To);                  
                message.Headers.Add("X-Company","xyz");                
                message.Body = emailMessage.ToString();
                message.Subject = Subject;                
                message.IsBodyHtml = true;               
                smtp.Send(message);

3 个答案:

答案 0 :(得分:1)

这对所有电子邮件客户端来说都很难实现,因为他们可以在您回复时自由删除他们认为不必要的标题。

如果您的唯一目标是插入一些键值对,并在有人回复时将其返回给您,当您正在执行HTML电子邮件时,您可以拥有一个隐藏的html元素,您可以在其中获得自定义标题信息。

答案 1 :(得分:0)

我们遇到类似的情况,我们应该向客户发送电子邮件并将其读回并将其与各种活动联系起来。

在研究期间,我们发现唯一没有被各种电子邮件客户端(Outook,Yahoo,Gmail等)取代或删除的HEADER是" XREF"。我们已经对它进行了彻底的测试,自从我们第一次推出它以来它一直在工作。

答案 2 :(得分:0)

正如Parapura rajkumar所述,在电子邮件中包含隐藏的html元素是解决此问题的最佳方法,因为自定义标头不会在所有电子邮件提供商中保留。

电子邮件提供商经常会破坏/删除html参数,我发现走私参数的最可靠方法是将它们作为图像查询参数包括在内。

下面是一个不可见图像的示例,该图像会附加到电子邮件正文中。您可以用自己的资源替换wikimedia图像,并通过走私参数作为查询参数。当用户答复时,您应该能够再次将其解析出来。如果您托管URL,则具有在打开电子邮件时点击服务器的额外好处,可用于确定何时查看电子邮件。

<img src='https://upload.wikimedia.org/wikipedia/commons/c/ca/1x1.png?policyref={policyref}'  alt='' width='1' height='1' border='0' style='height: 1px; width: 1px; border-width: 0px; margin: 0px; padding: 0px;'>