在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:
- 使用上面的代码来设置mail.From =新的MailAddress(地址,显示名称)
- 在Gmail中,转到邮件设置>>帐户和导入。
- 添加您将用作“发送邮件为”的发件人的电子邮件帐户。 (勾号为别名)
这对我有用
是的,只需使用MailMessage的From属性即可
例如。
mail.From = "newemail@email.com";
编辑 :另外,看到这个职位更详细的信息如何通过在C#中的Gmail邮件,
通过Gmail在.NET中发送电子邮件
编辑:虽然这在一般的邮件工程,似乎这将不会为gmail工作,因为谷歌覆盖它发送之前(见@Dave wanta的答案)
如果您的发件人数量有限,则可以按照@philip的build议进行操作。 例如,您可能有customerservice@example.com
simon@example.com
philip@example.com
, simon@example.com
和philip@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