我有一些关于SMTP的基本问题(尽量不要太笑)。
当我尝试通过telnet使用SMTP发送电子邮件在谷歌它需要身份validation。 邮件服务器使用SMTP中继它们之间的消息吧? 那么他们如何使用SMTP进行中继而不相互authentication呢? 我询问了谷歌邮件服务器的MX,并试图通过telnet启动SMTP会话,但似乎没有工作,我只是一个黑屏,没有HELO,没有EHLO,什么都没有。
一个常见的configuration是发往组织内“地址”的电子邮件不需要authentication,而“出站”电子邮件则需要authentication。 这允许组织接收入站电子邮件,而不成为由互联网上不择手段的人发送的垃圾邮件的来源。
这通常是通过完全独立的服务器负责入站和出站电子邮件来实现的。 出站服务器被configuration为在所有情况下都要求validation,而入站服务器不需要validation,但只接受发往组织内部的消息。
我询问了谷歌邮件服务器的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
您对电子邮件的工作原理有一点误解。
当您通过您的电子邮件提供商将电子邮件从您的电子邮件帐户/客户端(使用SMTP)发送到其电子邮件由另一个电子邮件提供商处理的收件人时,您的电子邮件提供商要求您进行身份validation,因为您要求您的电子邮件提供商通过它传递电子邮件某些收件人的电子邮件由其他电子邮件提供商处理 您正在向您的电子邮件提供商不具有权威性的域发送电子邮件,因此需要进行身份validation,因为您要求您的电子邮件提供商将电子邮件转发到其他服务器。
您的电子邮件提供商反过来与收件人电子邮件服务器build立SMTP连接,将电子邮件发送到收件人SMTP服务器,而不是通过收件人电子邮件服务器。 收件人电子邮件服务器对收件人域的电子邮件具有权威性,因此,您的服务器将电子邮件发送到服务器,而不是通过服务器。 这是SMTP服务器之间如何发送电子邮件。 这不是中继。
我可能误解了你的问题,但似乎更多的是关于电子邮件中继/传递如何在没有密码的情况下工作的一般性质。 我会回应。
当邮件服务器正在考虑是否转发电子邮件时,通常会寻找几个关键特征:
上游连接服务器/客户端的源IP地址 – 换句话说,从哪里发送消息(例如60.60.60.60)
收件人的目标电子邮件地址 – 换句话说, 邮件的目的地是谁。
(还有很多其他的东西可以考虑,但为了简单起见,我会把它们留在外面)。
如果电子邮件收件人域不属于邮件服务器本身,则服务器将(正确)怀疑邮件并需要某种“证据”来validation发件人是可信源,而不是垃圾邮件发送者或恶意用户试图滥用系统。 这是源IP(除其他外)可以帮助的地方。
一个简单的设置是提前添加可信上游服务器的IP地址。 例如,我可以告诉我的电子邮件服务器,将消息从[email protected]转发到任何地方(如果消息来自可信的IP),也可以。