在c#中通过gmail发送邮件时更改发件人地址

ACP*_*ACP 25 c# gmail smtp networkcredentials

我使用以下代码使用Gmail帐户从我的Web应用程序发送邮件.我的问题是,我可以将发件人地址更改为原始发件人(gmail)地址以外的其他地址吗?我的代码如下:

System.Net.Mail.MailMessage mail = new System.Net.Mail.MailMessage();
System.Net.NetworkCredential cred = new System.Net.NetworkCredential("sample@gmail.com", "*******");
Run Code Online (Sandbox Code Playgroud)

无论我做什么都没用,因为我总是收到邮件sample@gmail.com.是否有可能改变它?

我已经改为 mail.From = new System.Net.Mail.MailAddress("sample@yahoo.com");但是我收到了来自发件人地址的邮件,sample@gmail.com而不是来自新的"发件人"地址.我认为gmail smtp用原始凭证覆盖起始地址.

小智 38

这是解决方案:

  1. 使用上面的代码设置mail.From = new MailAddress(地址,显示名称)
  2. 在Gmail中,转到"邮件设置">>"帐户"和"导入".
  3. 在"发送邮件"中添加您将用作发件人的电子邮件帐户.(打为别名)

这适合我


dav*_*nta 34

Gmail不允许您将FROM更改为与您的Gmail帐户不同的内容.

无论你使用什么,他们都会覆盖它,然后才能传递它.这可以防止垃圾邮件/欺骗.


Iai*_*ard 5

是的只需使用MailMessageFrom属性

例如.

mail.From = "newemail@email.com";
Run Code Online (Sandbox Code Playgroud)

编辑:此外,请参阅此帖子以获取有关如何通过C#中的Gmail发送电子邮件的更多详细信息

通过Gmail在.NET中发送电子邮件

编辑:虽然这适用于邮件一般,但似乎这对gmail不起作用,因为谷歌在发送之前覆盖它(参见@Dave wanta的回答)