使用System.Net.Mail.SmtpClient,更改SMTP FROM电子邮件地址

时间:2010-09-22 10:15:06

标签: c# email

正如标题中所述,我希望更改提供给SMTP服务器的FROM地址,而不是电子邮件信封中的FROM地址。

我能找到的最接近的样本来自Java,can be found here

由于

5 个答案:

答案 0 :(得分:3)

提供给SMTP服务器的FROM是SmtpClient的登录名,而Mail中的FROM是MailMessage中的FROM。

SmtpClient smtp = new SmtpClient();
smtp.Host = "myserver.address.com";
smtp.Credentials = new NetworkCredential("me@server.com", "myPassword");

MailMessage msg = new MailMessage();
msg.From = "otherMe@server.com";

//OTHER MESSAGE SETTINGS

smtp.Send(msg);

这应该使用服务器上的用户“me@server.com”发送来自“otherMe@server.com”的电子邮件

答案 1 :(得分:1)

Java示例是关于返回地址,而不是From。

据我所知,你不能这样做。 SMTP服务器使用“发件人”地址来决定是否要中继。

您获得的唯一其他凭据是登录SMTP服务器。

答案 2 :(得分:1)

底线是,你不能这样做。 System.Net.Mail中使用的FROM地址用于SMTP事务(Envelope-From)和来自标头值的MailMessage。

对不起,
戴夫

答案 3 :(得分:-1)

不幸的是,这是不可能的。

首先,smtp.Host = smtp.serv.com;存在语法错误。这不是有效的书写字符串类型,第二个是属性Host不存在。

答案 4 :(得分:-1)

作为explained by bzlm,如果您正在使用SmtpClient的网络投放方式,则可以通过设置MailMessage.Sender属性来设置MAIL FROM。但是,请注意,这会产生副作用,即在您的邮件中添加发件人头条,这将导致许多电子邮件客户端显示邮件发件人为" X代表Y"。