博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
利用命令行发邮件
阅读量:6656 次
发布时间:2019-06-25

本文共 1186 字,大约阅读时间需要 3 分钟。

 

  • 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验证,详见:

其发送用户名与口令的格式应该是“<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运算,如果得到相同的输出则认证成功)

 

转载地址:http://rzxto.baihongyu.com/

你可能感兴趣的文章
我的友情链接
查看>>
路由器的密码恢复
查看>>
jquery图片延迟加载插件
查看>>
使用Hystrix守护应用(3)
查看>>
mysql数据库show processlist查看当前连接数及状态,show status查看所有状态
查看>>
我的友情链接
查看>>
收集了一些linux的命令
查看>>
python3 django-admin 添加业务模块,多字段搜索
查看>>
unity的shader
查看>>
不要在函数离开临界区之前返回
查看>>
android 命令
查看>>
Centos7 Ldap统一认证部署
查看>>
Symantec AntiVirus企业版部分客户端无法更新
查看>>
oracle 使用 UTL_FILE 导出表数据到txt文件
查看>>
一个关于编码的实验(C#写的记事本文档,在Linux下用C++读取)
查看>>
poj3080(串-KMP+枚举)
查看>>
MySQL 数据库中日期与时间函数 FROM_UNIXTIME(), UNIX_TIME() ...
查看>>
Android运行时出现的 java.lang.VerifyError 异常解决方案
查看>>
正则表达式测试工具
查看>>
centos安装 7zip
查看>>