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

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

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

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

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

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

无论你使用什么,他们都会重写,然后再传递。 这可以防止垃圾邮件/欺骗。

这是解决scheme:

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

这对我有用

是的,只需使用MailMessage的From属性即可

例如。

 mail.From = "newemail@email.com"; 

编辑 :另外,看到这个职位更详细的信息如何通过在C#中的Gmail邮件,

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

编辑:虽然这在一般的邮件工程,似乎这将不会为gmail工作,因为谷歌覆盖它发送之前(见@Dave wanta的答案)

如果您的发件人数量有限,则可以按照@philip的build议进行操作。 例如,您可能有customerservice@example.com simon@example.com philip@example.comsimon@example.comphilip@example.com ,甚至是alias@example.com 。 只要他们是在实际的gmail.com网站上的批准发件人,你可以从他们发送。

Gmail.com:从其他地址发送邮件

如果您希望从任意用户发送(例如用户input电子邮件的网站上的客户服务表单,而您不希望他们直接向您发送电子邮件),则可以执行的最佳操作是:

  msg.ReplyToList.Add(new System.Net.Mail.MailAddress(email, friendlyName)); 

如果你在一个受控的环境中,这个工作很好,但请注意,即使指定了答复(我不知道是哪一个),我也看到有些电子邮件客户端发送到发件人地址。

检查#56和#58。 它们可能与您想要执行的操作有关https://code.google.com/p/google-apps-script-issues/issues/detail?id=172