26

我使用以下代码使用 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 会用原始凭据覆盖发件人地址。

4

5 回答 5

40

这是解决方案:

  1. 使用上面的代码设置 mail.From = new MailAddress(address, display name)
  2. 在 Gmail 中,转到邮件设置 >> 帐户和导入。
  3. 在“发送邮件为”中添加您将用作发件人的电子邮件帐户。(打勾作为别名)

这对我有用

于 2012-01-04T13:05:58.993 回答
35

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

无论您使用什么,他们都会在转发之前覆盖它。这可以防止垃圾邮件/欺骗。

于 2010-10-06T13:21:43.200 回答
5

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

例如。

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

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

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

编辑:虽然这通常适用于邮件,但似乎这不适用于 gmail,因为谷歌在发送之前会覆盖它(请参阅@Dave wanta 的回答)

于 2010-10-06T10:34:31.320 回答
2

如果您的发件人数量有限,您可以按照@philip 的建议进行操作。例如,您可能有customerservice@example.comsimon@example.com甚至。只要他们是实际网站上批准的发件人,您就可以从他们那里发送。philip@example.comalias@example.comgmail.com

Gmail.com : 从不同地址发送邮件

如果您希望从任意用户发送(例如用户输入其电子邮件的网站上的客户服务表格,并且您不希望他们直接向您发送电子邮件),那么您可以做的最好的事情是:

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

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

于 2013-07-07T20:46:00.007 回答
1

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

于 2014-03-19T14:21:57.903 回答