老实说,我认为我在理解 SMTP 的工作原理方面存在根本性的差距。我似乎无法很好地解释幕后发生的事情,我认为这使我无法做我想做的事情。
为了解释,我正在尝试设置一个通过连接到 SMTP 服务器向用户发送通知的应用程序。很公平。我想,由于我使用自己的域,我配置了 SPF/DKIM/DMARC,我可以为我设置应用程序的主机添加 MX 记录(我的 SPF 记录具有mx授权我 MX 中的任何主机的关键字记录发送/接收邮件)。然后,我可以让同一台主机运行一个超级轻量级的 SMTP 服务器,它可以接受来自应用程序的邮件,并将它们发送给收件人。
几乎至关重要的是,我希望这个服务器基本上只在 localhost 上运行,这样只有这个应用程序可以连接并通过它发送邮件,但它不能真正“接收”发送到我的域的邮件(我已经将 MX 优先级设置为此应用服务器的低(嗯,高数字))。我想,因为我正在运行自己的 SMTP 服务器,所以我不需要对其进行身份验证(它在 localhost 上运行),只需接收任何邮件并将其发送到收件人域即可。
发送到收件人域时... SMTP 服务器是否需要进行身份验证才能说 gmail SMTP 服务器作为用户才能在那里发送邮件?这看起来很奇怪,因为它不是用户登录 gmail 来发送邮件,它是 SPF 授权的 SMTP 服务器,它从我的域(我的域中From的地址)发送邮件到应用服务器用户的电子邮件所在的位置(在在此示例中,用户将是例如some_user@gmail.com)。
我尝试使用 python 的命令行和 telnet 从toaiosmtpd发送邮件,但它似乎没有传递消息;我想将连接到我的域的首选 MX 服务器(我的“真实”MX)以传输消息,然后将其放入我的收件箱。情况似乎并非如此,我不知道为什么。test@MY_DOMAIN.TLDtest@MY_DOMAIN.TLDaiosmtpd
精确的复制步骤,example.com我的域在哪里,终端在我的 MX 记录中列出的主机名的盒子上运行。
A航站楼:
$ aiosmtpd -n
B航站楼:
$ telnet localhost 8025
EHLO <example.com>
MAIL FROM: test@example.com
RCPT TO: test@example.com
DATA
FROM: Application Notifications <test@example.com>
TO: User Name <test@example.com>
SUBJECT: App Notify Test
This is a test!
.
QUIT
SMTP 服务器通常如何在彼此之间发送邮件?他们每个人都可以登录到彼此的 SMTP 服务器进行身份验证吗?既然我没有这样做,这是个问题吗?我可以在 localhost 上运行 SMTP 服务器并让它从网络发送邮件而不接收邮件(无回复服务)吗?有什么明显的东西我只是在这里想念可以解决我所有的问题吗?
谢谢