首页 > 代码库 > 利用命令行发邮件
利用命令行发邮件
- 1.与SMTP服务器建立连接
c:\> telnet xxx.xxx.xxx.xxx 25220 xxxxxxxxxx ESMTP SendmailEHLO localhost250-ENHANCEDSTATUSCODES250-8BITMIME250-SIZE250-DSN250-ETRN250-AUTH PLAIN LOGIN250-DELIVERBY250 HELP
- 2. AUTH PLAIN认证
基于明文的SMTP验证,详见:http://www.ietf.org/internet-drafts/draft-ietf-sasl-plain-08.txt
其发送用户名与口令的格式应该是“<NULL>tim<NULL>tanstaaftanstaaf”。“tim”是用户名,后边的字符串是口令,NULL是ASCII的0(所以无法使用telnet登录)。
对认证字符串“-UserID\0UserID\0Password”进行Base64编码。
-> AUTH PLAIN<- 334-> ASFasasERWcr=<- 235
- 3.AUTH LOGIN认证
分别对用户名和密码进行Base64编码。
-> AUTH LOGIN<- 334 VXNlcm5hbWU6-> BASE64编码的用户名<- 334 UGFzc3dvcmQ6-> BASE64编码的密码<- 235
- 4.AUTH CRAM-MD5认证
CRAM-MD5即是一种Keyed-MD5验证方式,CRAM是“Challenge-Response Authentication Mechanism”的所写。所谓Keyed-MD5,是将Clieng与Server共享的一个Key作为一部分MD5的输入,正好邮件系统的用户口令可以作为这个Key。对服务器的进行解码。
以CRAM-MD5为例,身份验证过程为:
a. 客户端声明用CRAM-MD5验证方式
b. 服务器返回一个标记(Base64编码的随机字符串)
c. 客户端用邮箱密码做密钥,以MD5方式加密此标记,生成HMAC;然后将用户名连同HMAC发送出去
d. 服务器收到用户名与HMAC,检验其正确性,给出回复
-> AUTH CRAM-MD5<- 334 PDExMjc5NDA4MTYuMTgwMDM5NEBzbXRwLmVsb25nLmNvbT4= (Server发送BASE64编码的Timestamp、Hostname等给Client。解码后)<1127940816.1800394@smtp.elong.com>
-> Ymh3YW5nIDVmZWIwYzcxMWVlMGQzYWU1ZTNlYjA4N2VhMGU2YTI3 (Client将收到的信息加上用户名和口令,编码为BASE64发送给Server)<- 235 Authentication successful (Server使用该用户的口令进行MD5运算,如果得到相同的输出则认证成功)
利用命令行发邮件
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。