Dea*_*ean 2 email smtp authentication
我有一些关于 SMTP 的基本问题(尽量不要笑太多)。
当我尝试通过 telnet 使用 SMTP 在 google 上发送电子邮件时,它需要身份验证。邮件服务器使用 SMTP 在它们之间中继消息,对吗?那么它们如何在不相互验证的情况下使用 SMTP 进行中继呢?我查询了谷歌邮件服务器的 MX 并尝试通过 telnet 启动 SMTP 会话,但它似乎不起作用,我只是黑屏,没有 HELO,没有 EHLO,什么都没有。
一个常见的配置是,发往组织“内部”地址的电子邮件不需要身份验证,而“出站”电子邮件则需要身份验证。这允许组织接收入站电子邮件,同时不会成为不道德的人在互联网上发送的垃圾邮件的来源。
这通常是通过拥有负责入站和出站电子邮件的完全独立的服务器集来实现的。出站服务器配置为在所有情况下都需要身份验证,而入站服务器不需要身份验证,但只接受发往组织内部的邮件。
我查询了谷歌邮件服务器的 MX 并尝试通过 telnet 启动 SMTP 会话,但它似乎不起作用,我只是黑屏,没有 HELO,没有 EHLO,什么都没有。
这似乎按预期工作。
$ host -t mx google.com
google.com mail is handled by 30 alt2.aspmx.l.google.com.
google.com mail is handled by 20 alt1.aspmx.l.google.com.
google.com mail is handled by 10 aspmx.l.google.com.
google.com mail is handled by 40 alt3.aspmx.l.google.com.
google.com mail is handled by 50 alt4.aspmx.l.google.com.
$ telnet aspmx.l.google.com. 25
Trying 74.125.131.27...
Connected to aspmx.l.google.com.
Escape character is '^]'.
220 mx.google.com ESMTP db10si2487268vdc.138
Run Code Online (Sandbox Code Playgroud)
您对电子邮件的工作方式有一点误解。
当您从您的电子邮件帐户/客户端(使用 SMTP)通过您的电子邮件提供商向其电子邮件由另一个电子邮件提供商处理的收件人发送电子邮件时,您的电子邮件提供商要求您进行身份验证,因为您要求您的电子邮件提供商将您的电子邮件通过它转发给某些收件人的电子邮件由另一个电子邮件提供商处理。您正在向您的电子邮件提供商没有授权的域发送电子邮件,因此需要进行身份验证,因为您要求您的电子邮件提供商将电子邮件中继到另一台服务器。
您的电子邮件提供商反过来与收件人电子邮件服务器建立 SMTP 连接,以将电子邮件发送到收件人 SMTP 服务器,而不是通过收件人电子邮件服务器。收件人电子邮件服务器对收件人域的电子邮件具有权威性,因此您的服务器将电子邮件发送到服务器,而不是通过服务器。这就是 SMTP 服务器相互发送电子邮件的方式。这不是中继。