SMTP服务器正确的电子邮件路由

时间:2019-01-25 10:34:32

标签: email routing smtp

此刻我正在尝试实现SMTP服务器,并且对路由存在疑问... 想象一下,客户端(foo@bar.com)将邮件发送到foo1 @ bar1.com,foo2 @ bar2.com和foo3@bar3.com。 SMTP服务器看到该消息会怎样?现在,我不确定以下顺序是否正确:

  1. SMTP服务器会将邮件放入foo@bar.com的发件箱中
  2. 对于信封中的每个收件人(foo@bar.com除外),SMTP服务器将执行以下操作:
    1. 获取MX记录
    2. 连接到由MX记录确定的SMTP服务器
    3. 发送HELO / EHLO命令
    4. 发送MAIL FROM命令(foo@bar.com)
    5. 发送RCPT TO命令(例如foo1@bar1.com)
    6. 发送数据命令
    7. 发送QUIT命令

这些步骤正确吗?对我来说,发件人的SMTP处理所有通信是有意义的,但是我发现了一些页面(例如https://www.msxfaq.de/internet/envelope.htm),其中邮件服务器仅将邮件转发到下一个SMTP服务器,而每个SMTP服务器都删除了一个信封的rcpt-to列表中的收件人,例如

enter image description here

那么,正确的是...吗?

  1. 发件人的SMTP处理所有路由
  2. 发件人的SMTP会删除一个收件人(在本例中为foo@bar.com),然后将邮件转发到下一个SMTP服务器

1 个答案:

答案 0 :(得分:0)

您列出的步骤基本上是正确的。

撰写电子邮件并尝试将其发送到许多不同的域(例如, steve @ apple.com,woz @ apple.com和bill@microsoft.com。

在这种情况下,服务器必须在这些域中的每个域上进行MX查找,并拆分电子邮件。史蒂夫和沃兹都在同一个域中,因此服务器可以将与这两个收件人一起的电子邮件发送到apple.com的MX记录。服务器必须为microsoft.com打开与MX记录的单独连接,并尝试通过该连接向Bill发送电子邮件。