【问题标题】:change sender address when sending mail through gmail in c#在c#中通过gmail发送邮件时更改发件人地址
【发布时间】:2011-04-21 18:10:51
【问题描述】:

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

【问题讨论】:

    标签: c# smtp gmail networkcredentials


    【解决方案1】:

    这是解决方案:

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

    这对我有用

    【讨论】:

    • 更好的答案。可以更改 Gmail 中的发件人。
    • 完美。非常感谢!
    • 这是一个更好的答案。谢谢。
    【解决方案2】:

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

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

    【讨论】:

    • 不正确,请参阅下面的评论。只要您将另一个帐户添加为别名,这是可能的。
    • 这不是正确的答案,我今天一起实现了 philip 和 Simon_Weaver 的答案,并且能够使用帐户的主要登录详细信息(与别名不同)从 G Suite 别名成功发送电子邮件。
    【解决方案3】:

    是的,只需使用MailMessageFrom 属性

    例如。

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

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

    Sending email in .NET through Gmail

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

    【讨论】:

    • 虽然您通常是对的,但当专门通过 Google SMTP 服务器发送邮件时,“From:”属性会被覆盖。
    • 这不是真的,您可以使用与 Google SMTP 不同的地址。只要确保它是一个别名(正如 w69rdy 指出的那样)并且您遵循 RFC 2822 规范(我的错误是在电子邮件和名称括号之间有一个空格,它应该是 test@test.com)。发件人地址不会被 Google 更改,但您可以影响这一点,因为它将使用您的 gmail 设置中标记为默认的帐户。
    【解决方案4】:

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

    Gmail.com : Sending mail from a different address

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

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

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

    【讨论】:

      【解决方案5】:

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

      【讨论】:

        猜你喜欢
        • 2011-07-21
        • 2011-05-13
        • 1970-01-01
        • 2014-12-28
        • 1970-01-01
        • 2011-07-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多