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);
4

3 回答 3

1

这在所有电子邮件客户端中都很难做到,因为当您回复时,他们可以自由地删除他们认为不必要的标题。

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

于 2012-09-11T14:45:35.527 回答
0

我们也遇到过类似的情况,我们应该向客户发送电子邮件并阅读它们并将它们与各种活动相关联。

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

于 2017-01-16T15:14:16.413 回答
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;'>
于 2020-05-04T16:46:25.237 回答