首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AWS SES:“电子邮件地址未被验证”错误与后缀继电器

AWS SES:“电子邮件地址未被验证”错误与后缀继电器
EN

Server Fault用户
提问于 2013-04-16 19:48:15
回答 1查看 12.6K关注 0票数 4

我已经设置了Amazon,验证了我的域,并且已经批准了生产模式。当来自外部世界的电子邮件被发送到我域中的一个地址时,我的服务器将它转发回一个Gmail帐户,但是这个转发被Amazon拒绝,因为错误。

代码语言:javascript
复制
Email address is not verified

例如,如果yahoo.com的某个人在"me@mydomain.com“发送电子邮件给我,然后由于/etc/别名中的条目,该电子邮件立即被转发到"me@gmail.com”,则SES拒绝将电子邮件发送给gmail.com,即使"mydomain.com“是一个经过验证的域。当我打开与gmail.com连接的后缀详细记录时,电子邮件似乎是来自yahoo.com并发送到gmail.com --两者都不是我的域。它是在抱怨这封邮件来自yahoo.com这一事实吗?如果是这样的话,那么当从外部域,通过我的域将邮件中继到另一个(gmail)域时,我不能使用SES吗?

但是,如果我发送一封来自我的域名的电子邮件并发送到gmail地址,它就可以正常工作了。

下面是/var/log/maillog中的一行,其中SES服务器拒绝转发到gmail.com:

代码语言:javascript
复制
Apr 15 02:11:43 ip-10-194-190-140 postfix/smtp10191: 9013922528: to=<myaddress@gmail.com>, orig_to=<myaddress@mydomain.com>, relay=email-smtp.us-east-1.amazonaws.comhttp://54.243.71.143:25, delay=0.32, delays=0.01/0/0.11/0.2, dsn=5.0.0, status=bounced (host email-smtp.us-east-1.amazonaws.comhttp://54.243.71.143 said: 554 Message rejected: Email address is not verified. (in reply to end of DATA command))`

下面是我添加到/etc/后缀/main.cf的行:

代码语言:javascript
复制
relayhost = email-smtp.us-east-1.amazonaws.com:25
smtp_sasl_auth_enable = yes
smtp_sasl_security_options = noanonymous
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_use_tls = yes
smtp_tls_security_level = encrypt
smtp_tls_note_starttls_offer = yes
smtp_tls_CAfile = /etc/ssl/certs/ca-bundle.crt

后续问题:

当这个问题发生时,电子邮件会在哪里结束?这封电子邮件被我的后缀服务器接受为"me@mydomain.com",但是gmail.com的转发被Amazon拒绝。但是,电子邮件不在我的服务器上的发送邮件队列中,它不在我服务器上我帐户的邮箱中,也没有被退回到原来的发件人(在yahoo,在我上面的例子中)。它跑到哪里去了?

EN

回答 1

Server Fault用户

发布于 2014-10-08 08:11:47

为什么Amazon在发送电子邮件时抛出这个错误?

例如,您已经验证了域example.com。现在,someone@yahoo.com向myaccount@example.com发送一封电子邮件。后缀很高兴地接受它,并且由于别名文件,后缀将把它转发到otheraccount@gmail.com。

问题是,postfix在SMTP事务中使用someone@yahoo.com作为信封发送方。这是后缀的一种期望的默认行为。其目的是在GMAIL收到来自someone@yahoo.com的电子邮件时,不会丢失发件人的信息。不幸的是,Amazon只允许信封发送方域作为example.com。

溶液

从OP在注释中提到的螺纹中,有一些解决方案可以改变信封发送方,这样它就会通过Amazon限制。一个可能的解决方案是使用发件人_典范_地图。默认情况下,后缀将在信封和标头中重写发件人。有了适当的发件人_典范_类配置,后缀只会重写信封。

/etc/postfix/main.cf中,添加

代码语言:javascript
复制
sender_canonical_maps = regexp:/etc/postfix/sender_canonical
sender_canonical_classes = envelope_sender

/etc/postfix/sender_canonical中,添加

代码语言:javascript
复制
/.*/    mysenderaddress@example.com

问题是你最初的发件人是未知的。获取原始数据的一种方法是使用check_sender_access 正如后缀作者所建议的。的前置操作。

/etc/postfix/main.cf中,添加

代码语言:javascript
复制
smtpd_data_restrictions = check_sender_access pcre:/etc/postfix/sender_access

/etc/postfix/sender_access中,添加

代码语言:javascript
复制
/(.*)/  prepend X-Envelope-From: <$1>

这些设置将添加X-Envelope-From头,其中将包含原始发件人电子邮件地址。

当这个问题发生时,电子邮件会在哪里结束?它去哪了?

默认情况下,postfix将将此消息弹出给原始发件人(Yahoo地址)。您可以通过在拒绝后跟踪mail.log来跟踪它。当然,一些后缀设置可能会抑制反弹消息,或者雅虎会默默地拒绝它。

票数 7
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/499955

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档