代表'删除'使用MailGun发送邮件时

时间:2015-02-09 01:50:36

标签: email go mailgun dkim

我正试图弄清楚如何使用MailGun Golang API发送邮件,而不是代表'发送'。

这是From地址当前的样子(foo.com是发件人的电子邮件域,bar.com是我的域名):

john=foo.com@mail.bar.com on behalf of John Smith <john@foo.com>

我需要做什么才能看起来像这样:

John Smith <john@foo.com>

我根据MailGun说明设置了SPF和DKIM,所有内容都是正确的。我发送邮件时也使用了SetDKIM(true)。是否有一些我缺少的设置或我需要做的其他验证?

5 个答案:

答案 0 :(得分:18)

您需要将电子邮件标题中的sender属性设置为最有可能的地址。

我使用NodeMailer为node.js项目遇到同样的问题。 Gmail和Thunderbird会显示起始地址不错,但Outlook会将起始地址显示为

emailname=example.com@mail.example.com on behalf of emailname@example.com

当我查看完整的电子邮件标题时,我看到标题中的sender:emailname=example.com@mail.example.comfrom:emailname@example.com

我们首先考虑spf和dkim记录,认为这是一个问题,但它们很好,在电子邮件标题中,它甚至说spf和dkim都通过了所以我注意到发送者标题不同于来自和Outlook注意到gmail和thunderbird不在乎的地方。

尝试将sender标头设置为from值。

以下是针对上述示例进行了编辑的错误电子邮件标题的一部分示例

Received-SPF: pass (google.com....
Authentication-Results: mx.google.com;
       dkim=pass header.i=@mail.example.com;
       spf=pass (google.com.....
Sender: emailname=example.com@mail.example.com
From: Persons Name <emailname@example.com>

使Sender等于Sender: Persons Name <emailname@example.com>

答案 1 :(得分:12)

您是否添加了mg子域?

如果您添加了一个子域名,例如@ mg.domain.com,那么请确保您从name@mg.domain.com发送电子邮件

我遇到了同样的问题,因为我没有意识到我想要发件人地址 name@domain.com 但我已经按照建议添加了一个子域到mailgun: mg.domain.com

因此,当我尝试从 name@domain.com 发送电子邮件时,我“代表”/“已发送”,但只要我使用了子域名称@ mg.domain.com - “代表”消息消失了...愚蠢的我......

答案 2 :(得分:7)

添加到Dhodgin的答案:

如果您在MailGun中使用子域名(例如mail.bar.com,并且来自电子邮件地址使用的是其他域名,例如john@foo.com,则会出现h:消息 要解决此问题,请添加自定义MIME标头&#34; sender&#34;并将其设置为与来自电子邮件地址相同。

要使用 MailGun api添加自定义标头,请务必添加request.AddParameter("h:sender", "John Smith <john@foo.com> "); 前缀,例如:

using System;
using System.Runtime.Serialization;
namespace La.Di.Da
{
    [Serializable]
    public class MyCustomException : Exception
    {
        public MyCustomException()
            : base()
        {
        }

        public MyCustomException(string message)
            : base(message)
        {
        }

    ...
}

答案 3 :(得分:2)

您是否尝试从与您设置SPF / DKIM的域不同的域发送?

您只能从您使用Mailgun授权的域中发送带白色标签的电子邮件。

答案 4 :(得分:0)

 /*The answer for your question is the "Sender="*/
 FILENAME HTMMAIL  EMAIL "userid@comain"                            
 SUBJECT="Testing sending e-mail from the mainframe"
 CONTENT_TYPE='TEXT/HTML'                              
 TO="target_userid@domain"                              
 FROM="sending_userid@domain" 
 SENDER="sending_userid@domain";