对于用到的工具和对应的环境配置可以参见 smtp 抓包_Steven-Russell的博客-CSDN博客
25端口报文(仅支持smtp协议)
curl命令
curl --verbose -s --url 'smtp://smtp.qq.com:25' --ssl-reqd --cacert /root/qqmail.pem --mail-from 'xxxxxxxxx@qq.com' --mail-rcpt 'xxxxxxxxx@163.com' --upload-file /root/email.txt --user 'xxxxxxxxx@qq.com:xxxxxpasswaordxxxx'
tcpdump抓包
tcpdump host 120.241.186.196 -i ens33 -w qqmail_25_smtp.cap
具体报文信息详见附件:https://download.csdn.net/download/weixin_43317111/87591832
注意:25端口smtp进行邮件发送时,能够明显看到smtp建链过程
587端口报文(仅smtp协议)
curl命令:
curl --verbose -s --url 'smtp://smtp.qq.com:587' --ssl-reqd --cacert /root/qqmail.pem --mail-from 'xxxxxxxxx@qq.com' --mail-rcpt 'xxxxxxxxx@163.com' --upload-file /root/email.txt --user 'xxxxxxxxx@qq.com:xxxxxpasswaordxxxx'
tcpdump命令:
tcpdump host 120.241.186.196 -i ens33 -w qqmail_587_smtp.cap
具体报文信息详见附件:
https://download.csdn.net/download/weixin_43317111/87591832
注意:587端口smtp进行邮件发送时,能够明显看到smtp建链过程
465端口报文(仅smtps协议)
curl命令:
curl --verbose -s --url 'smtps://smtp.qq.com:465' --ssl-reqd --cacert /root/qqmail.pem --mail-from 'xxxxxxxxx@qq.com' --mail-rcpt 'xxxxxxxxx@163.com' --upload-file /root/email.txt --user 'xxxxxxxxx@qq.com:xxxxxpasswaordxxxx'
tcpdump命令:
tcpdump host 120.241.186.196 -i ens33 -w qqmail_465_smtps.cap
具体报文信息详见附件:https://download.csdn.net/download/weixin_43317111/87591832
注意:465端口smtps进行邮件发送时,并不能直接看到smtp建链过程
经过分析学习发现:
1、smtp的25和587端口需要配合参数 mail.smtp.starttls.enable=true 从而达到报文加密的效果(主要是以来startTls命令),如果该参数为false,则会明文传输
2、465作为smtps的端口,需要配合参数 mail.smtp.ssl.enable=true,进行使用达到报文加密的效果
注意:
1、 smtps协议必须要参数 mail.smtp.ssl.enable=true,否则无法正常发送邮件,最终会导致超时,参看 smtp 通过465端口发送邮件失败_Steven-Russell的博客-CSDN博客2
2、smtp的25和587无法使用 参数 mail.smtp.ssl.enable=true