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

时间:2010-10-06 10:32:15

标签: c# smtp gmail 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", "*******");

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

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

5 个答案:

答案 0 :(得分:36)

这是解决方案:

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

答案 1 :(得分:32)

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

在你继续使用之前,你使用什么并不重要,他们会覆盖它。这可以防止垃圾邮件/欺骗。

答案 2 :(得分:5)

是的,只需使用From

MailMessage属性即可

例如。

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

编辑:另外,请参阅此帖子,了解有关如何通过C#通过Gmail发送电子邮件的详细信息

Sending email in .NET through Gmail

编辑:虽然这对于邮件一般都适用,但是看起来这对gmail不起作用,因为google在发送之前会覆盖它(请参阅@Dave wanta的回答)

答案 3 :(得分:2)

如果你的发件人人数有限,你可以像@philip建议的那样。例如,您可能有customerservice@example.comsimon@example.comphilip@example.com,甚至alias@example.com。只要他们是实际gmail.com网站上的批准发件人,您就可以从他们发送。

Gmail.com : Sending mail from a different address

如果您希望从任意用户(例如用户输入电子邮件的网站上的客户服务表单,而您不希望他们直接通过电子邮件发送给您)发送关于您可以做的最好的事情:< / p>

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

如果你处于受控环境中这很好用,但请注意我已经看到一些电子邮件客户端发送到起始地址,即使指定了回复(我不知道哪个)。

答案 4 :(得分:1)

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