使用smtp发送邮件
一、建立连接
用cmd通过telnet建立一个与smtp服务器的连接(先开启telnet功能)
telnet smtp.qq.com 25
如果是163邮箱,则是smtp.163.com
,端口设置成25号
用
telnet mail.qq.com
也可以建立一个连接,但是通过这种方式发送邮件,到填rcpt to的时候会发生qq邮箱禁止群发...
之类的错误
二、发送邮件
-
打招呼
输入
helo+任意内容
跟服务器打招呼,如helo qq.com
-
登录
-
输入
auth login
进行登录 -
服务器返回
334 VXNlcm5hbWU6
,其中334为状态码,而后面的VXNlcm5hbWU6
是username:
的base64编码 -
输入你邮箱的base64编码
-
服务器返回
334 UGFzc3dvcmQ6
-
输入你邮箱授权码的base64编码,授权码一般在网页版邮箱设置里面有
-
最后服务器返回
235 Authentication successful
,登录成功!
-
-
设置邮件发送方
mail from:<邮箱地址>
,这里格式一定要正确,另外还有一个坑,当不小心输错了一个字符,用backspace改正后,内容会叠加在一起后发送给服务器,因此这种时候看起来输入是正确的,其实服务器还是会报错,所以需要一次输入正确,而且输入错误次数太多会断开连接 -
设置邮件接收方
rcpt to:<邮箱地址>
-
设置邮件内容
data
输入data后回车就可以开始写邮件内容了,这里标准格式是:
From:<邮箱地址> To:<邮箱地址> Subject:<主题> some data .
From
是写明邮件发送方,To
是写明接收方,Subject
是邮件主题,这三个写好后空一行写邮件主体内容,最后以一个单独的.
作为一行结束,这里前三行是可以不写的,但是这样的话接收者就不知道邮件是谁发送的了(只会显示由xxx代发
) -
最后服务器返回
250 OK....
就代表邮件已经成功发送了