如何在回复邮件时保留自定义电子邮件头(X-header)

10

我正在使用以下代码从我的.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);

你想要实现什么?也许是这个?https://dev59.com/pGox5IYBdhLWcg3wQSKp - tripleee
将话题重新提起: 有人找出了哪个头文件(或引用)可以在 Gmail 和 MS-Outlook 的回复中幸存下来吗? 如果是,对于未来如何保持兼容性有什么想法? - user13708028
3个回答

1

在所有电子邮件客户端中执行此操作将非常困难,因为它们可以自由地剥离它们认为在回复时不必要的标头。

如果您的唯一目标是插入一些键值对,并在某人回复时将其返回给您,那么由于您正在使用HTML电子邮件,您可以在其中放置一个隐藏的HTML元素,其中包含您的自定义标头信息。


谢谢您的迅速回复,是的,我的目标就是这样,但是这种方法也不起作用,因为这些隐藏字段在回复/转发时也被清除。我正在使用<input type='hidden' name='Customer Number' id='HiddenId' value='0010' />。 - Sami

0
我们曾经遇到过类似的情况,需要向客户发送电子邮件并将其与各种活动关联起来。
在研究中,我们发现唯一一个不会被各种电子邮件客户端(如Outlook、Yahoo、Gmail等)替换或删除的标题是“XREF”。我们已经进行了彻底的测试,并且自从我们首次引入它以来一直在工作。

0

正如Parapura rajkumar所提到的,将隐藏的HTML元素包含在电子邮件中是最好的方法,因为自定义标头不会在所有电子邮件提供商之间保留。

电子邮件提供商通常会破坏/删除HTML参数,我发现通过将它们作为图像查询参数包含在内是最可靠的方法来传递参数。

以下是一个示例,其中包含一个不可见的图像以附加到电子邮件正文。您可以用自己的资源替换维基媒体图像,并将参数作为查询参数传递。当用户回复时,您应该能够再次解析出来。如果您托管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;'>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接