Canapin
(Coin-coin le Canapin)
1
我已经配置了 Amazon SES。
我已经脱离了沙盒环境,这意味着我可以向未经验证的地址发送电子邮件。
来自 Amazon SES 文档:
当您的账户脱离沙盒环境后,您可以向任何收件人发送电子邮件,无论收件人的地址或域名是否经过验证。但是,您仍然需要验证所有用作“发件人”、“源”、“寄件人”或“退信路径”地址的身份。
我还配置了我的 SMTP 凭据。
从 Amazon S3 控制面板或任何其他 SMTP 测试工具向未经验证的收件人发送测试电子邮件可以正常工作。
但是,从 Discourse 发送则不行。
app.yml:
DISCOURSE_SMTP_ADDRESS: email-smtp.eu-west-3.amazonaws.com
DISCOURSE_SMTP_PORT: 587
DISCOURSE_SMTP_USER_NAME: AKIA****************
DISCOURSE_SMTP_PASSWORD: "*************************************"
#DISCOURSE_SMTP_ENABLE_START_TLS: true # (optional, default true)
DISCOURSE_SMTP_DOMAIN: forum.monocycle.info # (address to send notifications from)
DISCOURSE_NOTIFICATION_EMAIL: noreply@forum.monocycle.info # (address to send notifications from)
通过电子邮件回复设置:
当我在 Discourse 中发送测试电子邮件时,邮件被跳过并出现此错误消息:
554 消息被拒绝:电子邮件地址未经验证。在 EU-WEST-3 区域中,以下身份检查失败:monocycle.info+verp-3a76559e11c2b9a318165af8eb968f22@gmail.com…
当然,在更改 app.yml 后我已重建了我的应用程序。
有什么想法可以解释为什么会出现此问题以及如何解决它?
该错误消息表明您需要为 monocycle.info@gmail.com 创建一个身份并进行验证。请注意,您无需验证标签(+verp-...),因为在未带标签的情况下验证地址时,所有标签都将被接受。
原因是电子邮件回复地址用作退信地址(Return-Path address),这是您的引用中强调需要验证的类型之一。
我不确定为什么其他发送方式有效,但我认为您的 Amazon 控制面板和 SMTP 测试工具测试之所以有效,是因为它们是向您的电子邮件回复地址发送邮件,而不是像 Discourse 那样将其用作回复地址/退信地址。
身份验证文档在此处:
Canapin
(Coin-coin le Canapin)
3
啊,是的,正如这里所述:
起初我没明白。让我们尝试在 SES 中添加我的 Gmail 地址作为已验证地址。
Jagster
(Jakke Flemming)
4
据我所知,您不能在 SES 上使用 ±地址。但我每天都通过 Discourse 使用 SES。
Canapin
(Coin-coin le Canapin)
5
我已经验证了 monocycle.info@gmail.com,Discourse 可以向用户发送电子邮件。通过电子邮件回复功能也正常工作。
我会在接下来的几天看看是否遇到任何问题。
您能再详细解释一下吗?关于我刚才写的内容(似乎一切正常)。
Jagster
(Jakke Flemming)
6
有两个不同的问题:
- SES 无法在入站或出站流量中使用带加号的地址(我真的记不起“加号形式”的准确术语了)
- 我一直在通过 Discourse 向 SES 发送电子邮件
当我尝试使用“通过电子邮件创建/回复”功能时,我需要使用 Gmail,就是因为这个原因。
这对您有影响吗……我一点也不知道 
Canapin
(Coin-coin le Canapin)
7
好的,谢谢你的澄清。我不使用 SES 的 ± 地址,所以我觉得这在我的情况下不相关。
亚马逊称它们为标签(labels),如果你指的是 user+label@domain 地址,我不记得这是电子邮件术语还是仅仅是亚马逊的术语。你确定它们不受支持吗?用户很常用它们。
我在文档中唯一能找到的是 SMTPUTF8 扩展不受支持,将本地部分(@符号之前)限制为 7位ASCII字符。这包括+字符。
Jagster
(Jakke Flemming)
9
不,你没有,但 +verp… 充当了该角色。或者我完全错了?
Canapin
(Coin-coin le Canapin)
10
好吧,我的回复可能有点不对劲,因为我对与电子邮件相关的事情不太了解。
我的“通过电子邮件回复”设置确实是一个使用“+”等符号的 Gmail 地址。
如果“通过电子邮件回复”设置关闭,那么 Discourse 的电子邮件发送就可以正常工作(如果我没记错的话)。
如果“通过电子邮件回复”设置开启,并且我没有在 SES 中验证 Gmail 地址,那么 Discourse 将不会发送任何电子邮件,无论它们是否有 Gmail 的回复地址(例如,测试电子邮件或摘要电子邮件没有 Gmail 的回复地址),并会抛出 554 Message rejected: Email address is not verified 错误。
如果我在 SES 中验证了 Gmail 地址,那么 Discourse 发送的所有电子邮件似乎都可以正常工作,无论它们是否有 Gmail 的回复地址。
当然,我想多了解一点这些东西是如何工作的,但只要它能正常工作……这是我的首要 concerns。 