Node.js邮件项目SMTP端口及MX记录相关技术咨询
问题1:端口25用于不同邮件代理间的通信,若从telnet或自有邮箱向Gmail发送邮件,是否应使用该端口?(此操作是否称为发送?)
不要用25端口。25端口是邮件服务器之间的中继传输端口,比如你的域名邮件服务器向Gmail服务器投递邮件时才用这个端口。而从telnet直接发邮件、或者用自有邮箱客户端发邮件到Gmail,属于“邮件提交”行为,应该用587(或465)端口。另外很多网络运营商会封禁25端口防止垃圾邮件,Gmail也不允许客户端通过25端口提交邮件。这个客户端提交的操作不叫跨服务器的“发送”,跨服务器的传输才是通常说的用25端口的发送行为。问题2:端口587是否用于从自有邮箱(如Gmail)发送邮件,即发送需通过该端口?(此操作是否称为转发?同一邮件代理账户间的邮件传输场景是什么?)
587是标准的邮件提交端口,比如你用Node.js程序连接Gmail的SMTP服务器,把邮件提交给Gmail,这一步用的就是587端口。这个操作对客户端来说叫“提交”,Gmail服务器接收到邮件后,再负责把邮件转发到目标邮箱,这一步才是“转发/中继”。同一邮件代理账户间的传输,比如用Gmail给自己的另一个Gmail账号发邮件,一般是在服务商内部系统直接完成,不需要通过外部SMTP端口,也不会走跨服务器的传输流程。问题3:使用端口25向其他邮箱发送邮件时,是否需要使用MX记录?
需要。当你通过自己的邮件服务器用25端口向其他邮箱发邮件时,必须先查询目标邮箱域名的MX记录,找到负责接收该域名邮件的服务器地址,然后直接连接这个服务器的25端口投递邮件。如果目标域名没有配置MX记录,才会尝试使用该域名的A/AAAA记录,但MX记录是邮件传输的标准指向,是必须查询的关键步骤。
内容的提问来源于stack exchange,提问作者Cribe

