我正试图弄清楚如何使用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)
。是否有一些我缺少的设置或我需要做的其他验证?
答案 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.com
而from:
为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.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";