我有一个SMTP服务器只接受预定义的发件人.
但是,我可以在DATA结构中添加一个自定义标题来设置另一个(发送者)地址.如果我使用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
.
Run Code Online (Sandbox Code Playgroud)
当此电子邮件到达收件人时,起始地址为magnus@mydomain.com,这是目标.
这是我的问题.
我如何模仿System.Net.Mail SMTP类中的"from header"?设置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);
}
Run Code Online (Sandbox Code Playgroud)
有没有人有任何想法?
PS.使用TCP套接字自己编写自定义SMTP类,它可以工作,但这可以在标准的.NET类中完成吗?
好吧,我应该在发布问题之前做一些实验......
(但如果其他人有同样的问题,我不会删除它,而是将其留在这里)。
解决方案是在 MailMessage 对象上设置 From 和 Sender 属性。
(我需要同时设置,否则不起作用):
var message = new MailMessage(fromAddress, toAddress)
{
Subject = subject,
Body = body,
From = new MailAddress("magnus@mydomain.com"),
Sender = new MailAddress("the.only.allowed.sender@mydomain.com")
};
smtp.Send(message);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5338 次 |
| 最近记录: |