如何以编程方式从System.Net.Mail.MailMessage中删除SMTP标头?

时间:2009-09-01 12:24:23

标签: .net email smtp header

我需要从System.Net.Mail.MailMessage中删除SMTP标头。具体而言,包含有关MailMessage环境的信息的标头来自。

我已经尝试在SmtpClient发送之前检查MailMessage,但没有设置标头(它们是在稍后阶段设置的)。

可以在.NET Framework 3.5中完成,还是需要第三方SMTP库?

修改 这是托管我正在处理的网站的托管公司所要求的。他们说这需要保护有关内部网络布局的信息。

这通常被认为是不好的做法吗?有哪些潜在的副作用?

2 个答案:

答案 0 :(得分:1)

您可以指定PickupDirectoryLocation属性(请参阅http://msdn.microsoft.com/en-us/library/system.net.mail.smtpclient.pickupdirectorylocation.aspx)而不是使用SMTP服务器IP吗?然后循环生成的电子邮件,删除标题项,然后复制到SMTP传入目录?您需要询问您的Web主机是否可以将文件复制到其SMTP服务器传入目录中,以查看它们是否支持此方法。

我可以理解他们的担忧,但我以前从未听说过这种情况。至少不是开发人员。看起来这是他们的SMTP主机应该做的事情。我可以假设他们想要隐藏他们的SMTP主机或邮件服务器软件版本等的名称。但我甚至不知道是否可以这样做因为我总是认为这些标题是由SMTP主机添加的而不是通过我们(作为开发人员)编写的任何代码。

答案 1 :(得分:0)

我做了一些测试,看起来有问题的标题是由SMTP服务器而不是.NET Framework生成的。