使用 MailGun 发送邮件时删除 'on behalf of'
Removing 'on behalf of' when sending mail using MailGun
我正在尝试弄清楚如何使用 MailGun Golang API 发送邮件而不用发送邮件 'on behalf of'。
这是发件人地址当前的样子(其中 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)
。是否缺少某些设置或需要进行额外验证?
您是否尝试从不同于您设置 SPF/DKIM 的域发送?
您只能从您使用 Mailgun 授权的域发送白标电子邮件。
您最有可能需要将电子邮件 header 中的 sender
属性 设置为发件人地址。
我在 node.js 项目中使用 NodeMailer 时遇到了同样的问题。 Gmail 和 Thunderbird 会正确显示发件人地址,但 Outlook 会将发件人地址显示为
emailname=example.com@mail.example.com on behalf of emailname@example.com
当我查看完整的电子邮件 header 时,我发现 header 中的 sender:
是 emailname=example.com@mail.example.com
而 from:
是 emailname@example.com
我们查看了 spf 和 dkim 记录,起初认为这是一个问题,但它们很好,在电子邮件中 header 它甚至说 spf 和 dkim 都通过了,所以我注意到发件人 header 与 from 不同,Outlook 会注意 gmail 和 thunderbird 不太关心的地方。
尝试将 sender
header 设置为 from
值。
以下是其中一封错误电子邮件 header 的部分示例,已编辑以匹配上述示例
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>
您添加了 mg 子域了吗?
如果您添加了子域,例如@mg.domain.com,那么确保您从姓名@mg.domain.com[=10= 发送电子邮件]
我遇到了同样的问题,因为我没有意识到我想要发件人地址 name@domain.com 但我已经按照建议添加了 - mailgun 的子域:mg.domain.com。
因此,当我尝试从 name@domain.com 发送电子邮件时,我收到了 "on behalf of" / "sent by" 但我一收到我使用了子域 name@mg.domain.com - "on behalf" 消息消失了...愚蠢的我...
添加到 Dhodgin 的回答:
如果您在 MailGun 中使用子域(例如 mail.bar.com
)并且发件人电子邮件地址使用不同的域(例如 john@foo.com
),则会出现 on behalf of
消息
要解决此问题,请添加自定义 MIME header "sender" 并将其设置为与发件人电子邮件地址相同。
要使用 MailGun api 添加自定义 header,请确保添加 h:
前缀,例如:
request.AddParameter("h:sender", "John Smith <john@foo.com> ");
我正在尝试弄清楚如何使用 MailGun Golang API 发送邮件而不用发送邮件 'on behalf of'。
这是发件人地址当前的样子(其中 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)
。是否缺少某些设置或需要进行额外验证?
您是否尝试从不同于您设置 SPF/DKIM 的域发送?
您只能从您使用 Mailgun 授权的域发送白标电子邮件。
您最有可能需要将电子邮件 header 中的 sender
属性 设置为发件人地址。
我在 node.js 项目中使用 NodeMailer 时遇到了同样的问题。 Gmail 和 Thunderbird 会正确显示发件人地址,但 Outlook 会将发件人地址显示为
emailname=example.com@mail.example.com on behalf of emailname@example.com
当我查看完整的电子邮件 header 时,我发现 header 中的 sender:
是 emailname=example.com@mail.example.com
而 from:
是 emailname@example.com
我们查看了 spf 和 dkim 记录,起初认为这是一个问题,但它们很好,在电子邮件中 header 它甚至说 spf 和 dkim 都通过了,所以我注意到发件人 header 与 from 不同,Outlook 会注意 gmail 和 thunderbird 不太关心的地方。
尝试将 sender
header 设置为 from
值。
以下是其中一封错误电子邮件 header 的部分示例,已编辑以匹配上述示例
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>
您添加了 mg 子域了吗?
如果您添加了子域,例如@mg.domain.com,那么确保您从姓名@mg.domain.com[=10= 发送电子邮件]
我遇到了同样的问题,因为我没有意识到我想要发件人地址 name@domain.com 但我已经按照建议添加了 - mailgun 的子域:mg.domain.com。
因此,当我尝试从 name@domain.com 发送电子邮件时,我收到了 "on behalf of" / "sent by" 但我一收到我使用了子域 name@mg.domain.com - "on behalf" 消息消失了...愚蠢的我...
添加到 Dhodgin 的回答:
如果您在 MailGun 中使用子域(例如 mail.bar.com
)并且发件人电子邮件地址使用不同的域(例如 john@foo.com
),则会出现 on behalf of
消息
要解决此问题,请添加自定义 MIME header "sender" 并将其设置为与发件人电子邮件地址相同。
要使用 MailGun api 添加自定义 header,请确保添加 h:
前缀,例如:
request.AddParameter("h:sender", "John Smith <john@foo.com> ");