亚马逊如何从其他电子邮件服务发送电子邮件?

亚马逊如何从其他电子邮件服务发送电子邮件?

假设我在 Gmail 上注册了一个电子邮件地址。我在 Amazon Simple Email Service 中验证了我的地址(不是域名)。然后我使用 Amazon 从这个地址发送电子邮件。

实际上是谁在发送邮件?亚马逊还是 Gmail?亚马逊如何连接 Gmail 和其他电子邮件服务?Gmail 是否公开了一些符合某些协议的 API,以便允许使用自己的地址?

或者亚马逊只是自己做所有事情并假装是 Gmail?如果是这样,那么是什么阻止我部署自己的电子邮件服务器并假装是[电子邮件保护]未经验证?

更新:我似乎没有正确表达我的问题。如果我欺骗该from字段,收件人将禁止我。亚马逊没有被禁止。为什么?我认为也许有一些棘手的技术解决方案可以防止它被禁止。这仅仅是亚马逊的声誉吗?亚马逊只是通过与邮件服务的口头谈判来安排的吗?这并不明显。仅验证地址是一种足够好的做法吗?还是它确实不够可靠?亚马逊文档没有提到它不可靠。这难道不重要吗?

答案1

电子邮件使用SMTP 协议起源于 80 年代初期。在那个年代,每个人都与互联网几乎彼此信任,这是一个学术/研究网络。因此,由于这些起源,SMTP 协议几乎无法提供针对当前威胁的保护 - 垃圾邮件、网络钓鱼、病毒、身份盗窃等。与那个时代的许多其他协议一样,这些协议仍然是当今互联网的基础(DNS、HTTP、BGP 等),这些协议的作者没有想到有人会试图滥用它们,他们没有建立任何保护措施。

因此,我可以通过普通的 SMTP 向您发送一封看似来自你的gmail 地址,来自[电子邮件保护]或来自我选择的任何其他地址。SMTP 本身允许这样做,SES 使用 SMTP。当然,因为这是电子邮件协议

事实上,这很容易被滥用——这就是为什么随着时间的推移,一些保护措施已经开发出来:DKIM、SPF 等。然而,这些都是可选的,取决于正确的配置两个都由域名所有者和接收者负责。您会惊讶地发现有多少域名完全不受保护。

总结一下 -亚马逊 SES通过 SMTP 协议发送电子邮件,并且像任何其他 SMTP 服务器一样可以“模仿”他们喜欢的任何发件人地址。

显然,他们不会让您完全免费,因此在他们代表您发送任何电子邮件之前,您必须证明您控制发件人地址或域。但这纯粹是亚马逊强加的政策,从技术上讲,如果他们愿意,他们可以使用任何发件人地址。

另一方面:发送为[电子邮件保护]通过 SES 发送邮件可能不是 100% 可靠,因为 gmail.com 配置了 SPF 和 DKIM,而 AWS SES 无法欺骗这些保护。但这是在 SMTP 之上的,收件人也必须支持它。如果收件人不检查 DKIM 和 SPF,电子邮件就会通过。

此外,发件人 IP 地址信誉也很重要。任何个人 SMTP 服务器的 IP 地址信誉可能都比 SES 等大型可信服务差。

所有这些因素都会影响垃圾邮件评分。如果所有其他因素(包括 IP 代表)都表明它不是垃圾邮件,则 SPF 检查失败可能不会将其归类。这就是为什么您从 SES 发送的“技术上无效”的电子邮件会通过的原因 - 因为除了 SPF 之外的其他一切似乎都正常。垃圾邮件评估是一个复杂的话题。

为了最佳结果用你的自己的域名作为发件人并配置其 SPF 记录以包含/允许从 SES 服务器发送。

希望这能解释清楚:)

答案2

这里的混淆是由于没有考虑到信封发件人(有时称为“MAIL FROM”)和标题发件人(有时称为发件人:)之间的区别而造成的。

SPF 仅适用于信封发件人。您可以在文档中查看详细信息。有两种设置。一种要求您拥有该域名,因此它不适用于您。您可以使用另一种设置:

...使用 Amazon SES 的默认 MAIL FROM 域,并且根本不发布 SPF 记录。此设置使您能够通过 SPF 检查,因为默认情况下,Amazon SES 使用其自己的 MAIL FROM 域来发送您的电子邮件。

现在,这完全涵盖了 SPF。但是,正如所指出的,垃圾邮件检测器会进行更多的分析,包括检查邮件头,因此您的邮件仍可能被视为垃圾邮件。

答案3

评论太长了,但我想重申并扩展我之前的评论:人们将收到的信息,在幕后,看起来像“亚马逊代表“example AT gmail.com”发送了此消息 - 请将回复直接发送到该地址”并且亚马逊不需要欺骗任何东西,因为它并没有假装是 Gmail 或任何其他域名,就 SMTP 而言,该消息将来自亚马逊域名。

就像蜗牛邮件一样,SMTP 电子邮件有两组不同的地址信息:信封标题(如信封外面印刷的地址),SMTP 服务器使用它来路由和发送电子邮件;“普通”标题,它是邮件消息的一部分,只能由用户在其邮件客户端/网络邮件中阅读和解释,就像附在实体信件开头的称呼上的地址一样。与邮局不同,SMTP 通常会在将邮件交给用户之前丢弃大部分信封。

在 SMTP 信封上,Amazon 将使用他们自己的域名和映射到您帐户的域上的唯一邮箱名称。

邮件中将有一个From:和一个Reply-To:包含您的 Gmail 地址的标题,但Return-Path:包含 Amazon 地址。

由于信封发件人是亚马逊域名,并且防晒指数将要使用的记录将用于信封发件人,该消息将通过 SPF 检查。1 因为通过了 SPF 检查,所以邮件被投递的几率要高得多。

(亚马逊也可能会在邮件中添加来自其自己域名的 DKIM 签名,以增加邮件投递的几率。但是签名不会正确对齐。)

一个简单的 telnet 邮件会话可能更好地说明这一点:

[user@amazon ~]$ telnet gmail-smtp-in.l.google.com 25
Trying  74.125.128.27...
Connected to localhost.
Escape character is '^]'.

<<< 220 mx.google.com ESMTP 

helo Amazon

<<< 250 mx.google.com Hello Amazon [127.0.0.1], pleased to meet you

MAIL FROM:uuid@Aamzon

<<< 250 2.1.0 uuid@Amazon... Sender ok

RCPT TO:[email protected]

<<< 250 2.1.5 [email protected]... Recipient ok

DATA

<<< 354 Enter mail, end with "." on a line by itself


Subject: test
From: [email protected]
Reply-To: somebody
To: [email protected]
Return-Path: uuid@Amazon
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=Amazon

this is the email message you will see in your mailbox.
It has two lines and will appear to be from **[email protected]**.
.
<<< 250 2.0.0 t6HITQXA020072 Message accepted for delivery
quit

相关内容