我要做的是将传出电子邮件的原始内容传递给spamassassin以计算垃圾邮件分数.我被困在如何获得电子邮件的原始内容.
我的C#代码目前只构造MailMessage并将其传递给SmtpClient的Send()方法.在发送之前,有没有办法获得邮件消息的原始版本(协议可能会看到它),以便我可以将其传递给spamassassin工具进行垃圾邮件评估?
如果我没有很好地解释,请告诉我,我会尝试更好地解释.
提前致谢,
马丁.
我找到了解决问题的方法.
SmtpClient类有两个属性可以设置,这些属性会导致电子邮件存储到EML文件而不是实际发送.最初的目的是使电子邮件可以使用SmtpClient生成,但实际上是由另一个SMTP服务器拾取和发送的.
SmtpClient.DeliveryMethod SmtpClient.PickupDirectoryLocation
如果将SmtpClient.DeliveryMethod设置为SmtpDeliveryMethod.SpecifiedPickupDirectory并将SmtpClient.PickupDirectoryLocation设置为计算机上某个目录的完整路径,则调用SmtpClient.Send(mailMessage); 导致它被保存.
反过来,新创建的EML文件可以直接在命令行上传递给spamassassin,以获得我需要的垃圾邮件分数.
希望此信息可以帮助其他人解决此问题.
亲切的问候,
马丁.