在SMTP中,在HELO命令之后应该发生什么以及它做了什么?
我正在我的应用程序中发送电子邮件,我想知道是否应该使用 localhost ,即来自地址的域名(me @ example.com ),应用程序服务器的域名(发送电子邮件的域名)或其他内容。
答案 0 :(得分:5)
HELO之后的参数应标识系统发送电子邮件。因此,您将为发送计算机使用外部可寻址的DNS名称。
请勿使用localhost
,因为很多垃圾邮件软件会这样做,而且您的电子邮件会被标记为垃圾邮件。
来自RFC 2821:
4.1.1.1扩展的HELLO(EHLO)或HELLO(HELO)
这些命令用于标识SMTP的SMTP客户端 服务器。参数字段包含完全限定的域名 SMTP客户端是否可用。
我通常会建议您使用真正的MTA,并将您的电子邮件交给MTA以便最终交付。这样你就不必重新发明SMTP协议的实现,这很容易出错。
答案 1 :(得分:1)
它应该是应用程序服务器的域名。
HELO <SP> <domain> <CRLF>
In the HELO command the host sending the command identifies
itself; the command may be interpreted as saying "Hello, I am
<domain>".