关于c#:如何使用System.Net.Mail设置SMTP信封邮件?

关于c#:如何使用System.Net.Mail设置SMTP信封邮件?

How can you set the SMTP envelope MAIL FROM using System.Net.Mail?

当使用C#和System.Net.Mail命名空间发送电子邮件时,可以在MailMessage对象上设置"发件人"和"发件人"属性,但是这两个属性都不允许您创建MAIL FROM和发件人的地址 进入彼此不同的DATA部分。 MAIL FROM设置为" From"属性值,如果设置为" Sender",则仅在DATA节中添加另一个头字段。 这将导致"不是从X@Y.COM代表A@B.COM",而是您不需要的。 我想念什么吗?

用例正在控制代表其他人发送的新闻通讯等的NDR目的地。

我目前正在使用aspNetEmail而不是System.Net.Mail,因为它可以让我正确地执行此操作(就像大多数其他SMTP库一样)。 使用aspNetEmail,可以使用EmailMessage.ReversePath属性完成此操作。


MailMessage.Sender将始终插入Sender标头(在您的电子邮件客户端中代表)。

如果在SmtpClient上使用Network传送方法,则.Sender也会更改信封中的发件人。使用PickupDirectoryFromIis传递方法会将其留给IIS确定信封发件人,并且IIS将使用From地址,而不是Sender地址。

MSDN上也有类似的问题。


我刚刚找到了怎么做:

  • mail.From指定对最终用户可见的电子邮件
  • mail.Sender指定信封MAIL FROM

就这样(即使我花了一段时间才弄清楚)


如果添加以下行,则在邮件头中设置Return-Path和Reply-To头。

1
2
3
Dim strReplyTo As String ="email@domain.tld"
message.ReplyToList.Add(strReplyTo)
message.Headers.Add("Return-Path", strReplyTo)

如果单击"答复",则将电子邮件设置为"答复至"地址


你是这个意思吗?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
//create the mail message
 MailMessage mail = new MailMessage();

 //set the addresses
 mail.From = new MailAddress("me@mycompany.com");
 mail.To.Add("you@yourcompany.com");

 //set the content
 mail.Subject ="This is an email";
 mail.Body ="this is a sample body with html in it. This is bold <font color=#336699>This is blue</font>";
 mail.IsBodyHtml = true;

 //send the message
 SmtpClient smtp = new SmtpClient("127.0.0.1");
 smtp.Send(mail);

从http://www.systemnetmail.com/faq/3.1.2.aspx


推荐阅读

    linux命令行设置字体?

    linux命令行设置字体?,系统,工具,终端,软件,电脑,数字,位置,等级,字体,命令,L

    linux无效对象的命令?

    linux无效对象的命令?,软件,系统,单位,网络,管理,术语,检测,电脑,环境,风险,l

    linux命令快捷设置?

    linux命令快捷设置?,第一,系统,名称,终端,发行,首页,命令,快捷键,窗口,桌面,l

    linux命令设置扩展屏?

    linux命令设置扩展屏?,工具,系统,电脑,技术,软件,装备,情况,工作,命令,显示

    linux命令设置自启动?

    linux命令设置自启动?,服务,系统,信息,数字,检测,工具,状态,密码,跨行,脚本,l

    用linux命令写邮件?

    用linux命令写邮件?,系统,邮箱,服务,平台,工作,资料,代码,网上,地址,信息,Lin

    linux设置命令在哪里?

    linux设置命令在哪里?,系统,地址,代码,管理,密码,命令,位置,名字,服务,分行,l

    linux命令设置中文?

    linux命令设置中文?,系统,工作,数据,管理,设备,环境,标的,第一,网上,模式,lin

    设置网址命令linux?

    设置网址命令linux?,地址,系统,网络,代码,网址,密码,信息,电脑,管理,基础,lin

    linux设置日期命令?

    linux设置日期命令?,时间,系统,标准,命令,信息,大陆,国家,日期,时钟,时区,详

    linux命令查看包属性?

    linux命令查看包属性?,时间,系统,信息,状态,命令,文件,通讯录,管理,情况,标

    linux下发邮件命令?

    linux下发邮件命令?,邮箱,地址,系统,情况,服务,代码,认证,电脑,发行,检测,Lin

    linux设置时钟命令?

    linux设置时钟命令?,时间,系统,服务,图片,命令,网络,信息,风险,国家,大陆,lin

    linux命令长度设置?

    linux命令长度设置?,地址,工作,命令,管理,环境,系统,信息,目录,文件,参数,Lin

    linux双ip设置命令?

    linux双ip设置命令?,地址,系统,代码,网络,设备,服务,通讯,名称,信息,密码,lin

    linux用户组命令设置?

    linux用户组命令设置?,管理,系统,密码,代码,电脑,用户组,用户,软件,新增,命

    linux密钥设置命令?

    linux密钥设置命令?,密码,服务,数据,认证,环境,官网,系统,概念,通信,管理,如

    命令行怎么设置linux?

    命令行怎么设置linux?,系统,工作,命令,密码,信息,地方,工具,终端,文件,目录,

    linux拒收新邮件命令?

    linux拒收新邮件命令?,系统,信息,工作,拒收,邮箱,地址,不了,网络,标准,状态,L