【发布时间】:2015-04-29 00:27:13
【问题描述】:
我正在编写一个 SMTP 服务器,并且想知道一个我不知道如何处理的问题。
您知道,当您使用 Outlook、ThunderBird 或任何电子邮件客户端发送电子邮件时,我们需要(大多数情况下)用户名和密码来通过 SMTP 服务器进行身份验证。在这种情况下,SMTP 服务器在其他命令(如 MAIL、DATA...)之前需要“AUTH LOGIN”。
我在我的项目中完成了这个存根。但我想知道一个案例,当另一个 SMTP 客户端直接发送到我的 SMTP 服务器时。我的意思是我们的服务器是电子邮件的最终目的地。在这种情况下,不需要使用 AUTH LOGIN 进行身份验证。
我如何为上述 2 种情况组织我的代码。 Postfix、PowerMTA、Exim等专业的MTA是如何组织这些的。
希望你能帮助我
【问题讨论】:
-
那么“只需要对非本地邮件进行身份验证”选项?
-
这篇维基百科文章可能很有趣:SMTP Authentication
-
我想我只有一种方法,正如 Alex K 上面所说的那样。但是我遇到了一个问题:在大多数情况下,AUTH LOGIN 在 RCPT TO 命令之前执行,我们可以确定它是本地地址还是外部地址。这意味着我仍然对此感到困惑。
标签: authentication login smtp send