最初的SMTP协议是不包含安全认证的,所谓的ESMTP在安全性方面扩展了SMTP,通过增加命令EHLO和AUTH。如今SMTP 服务器,无论是公网的还是内网的,大都要求安全认证,如果你使用的是Outlook Express,那么在邮箱帐户的配置中有一个选项-“我的SMTP服务器要求验证”。我们的应用程序中经常有发送邮件的功能,而简单的邮件发送程序没有 包含验证的模块。
当客户端发送“EHLO”到Server后,Server将发送一个列表,类似:
EHLO
250-SMTP.Mydomain.com Hello [192.168.0.1]
250-8bitmime
250-BINARYMIME
250-VRFY
250-AUTH LOGIN PLAIN CRAM-MD5
250-AUTH=LOGIN
250 OK
列表中"LOGIN PLAIN CRAM-MD5"说明了该SMTP Server支持的验证方式,本文将详细解释这三种验证方式。
LOGIN方式
使用login方式的验证序列如下 (C:表示Client,S:表示Server)
C:auth login ----------------------------------------- 进行用户身份认证
S:334 VXNlcm5hbWU6 --------------------
当客户端发送“EHLO”到Server后,Server将发送一个列表,类似:
EHLO
250-SMTP.Mydomain.com Hello [192.168.0.1]
250-8bitmime
250-BINARYMIME
250-VRFY
250-AUTH LOGIN PLAIN CRAM-MD5
250-AUTH=LOGIN
250 OK
列表中"LOGIN PLAIN CRAM-MD5"说明了该SMTP Server支持的验证方式,本文将详细解释这三种验证方式。
LOGIN方式
使用login方式的验证序列如下 (C:表示Client,S:表示Server)
C:auth login ----------------------------------------- 进行用户身份认证
S:334 VXNlcm5hbWU6 --------------------