【发布时间】:2017-11-03 16:02:38
【问题描述】:
我有一个 SMTP 服务器,它只接受预定义的发件人。
但是,我可以在 DATA 结构中添加一个自定义的 from 标头来设置另一个 from (sender) 地址。如果我测试使用 Telnet 撰写电子邮件,这是可能的:
>helo there
>mail from:the.only.allowed.sender@mydomain.com
>rcpt to:magnus@mydomain.com
>data
From:magnus@mydomain.com
To:some.user@mydomain.com
Subject:Test
Test message
.
当这封电子邮件到达收件人时,发件人地址是 magnus@mydomain.com,这就是目标。
这是我的问题。
如何在 System.Net.Mail SMTP 类中模仿这个“来自标头”? 设置 from 属性失败,因为这会违反 SMTP 服务器策略。 像这样的东西会很棒,但它不起作用:
var fromAddress = new MailAddress("the.only.allowed.sender@mydomain.com");
var toAddress = new MailAddress("user@mydomain.com");
string subject = "Subject";
string body = "Body";
var smtp = new SmtpClient
{
Host = "my-smtp-server",
Port = 25,
DeliveryMethod = SmtpDeliveryMethod.Network
};
using (var message = new MailMessage(fromAddress, toAddress)
{
Subject = subject,
Body = body,
ReplyTo = new MailAddress("magnus@mydomain.com"),
})
{
message.Headers.Add("From", "magnus@mydomain.com"); // <---- This would be great, if it worked
smtp.Send(message);
}
有人有什么想法吗?
PS。自己编写一个自定义的 SMTP 类,使用 TCP 套接字,它可以工作,但是这可以在标准的 .NET 类中完成吗?
【问题讨论】: