邮件服务器之间如何用SMTP通信?
初学网络协议,想用TCP/IP实现SMTP协议,模拟邮件服务器发送一封邮件。
我用socket实现tcp连接smtp.126.com的25端口:
发送:HELO mail.xxx.com
回复:220 hz-b-126smtp1.126.com SMTP Server for Netease [466] d003a1fe-000e-4527-9ebd-ea810f0b2af2发送:MAIL FROM:cyhhao@mail.xxx.com
回复:250 hz-b-126smtp1.126.com a5399bc3-0157-480c-b524-437e08ea34d7发送:RCPT TO:cyhhao2013@126.com
回复:500 5.5.1 Invalid command a5399bc3-0157-480c-b524-437e08ea34d7
如图:
不知道以上发送的指令格式是否有误,欢迎指正……
如果指令格式没错的话,为什么会返回500错误呢?
听说SMTP协议现在一般都是需要“AUTH LOGIN”命令登录的,但是,假如,我作为一个新兴的邮件服务器,向126邮箱发邮件,126总不能要求我登录吧……
我有两个疑问:
1. 邮件服务器之间发送邮件使用SMTP协议,需要登录吗?如果不需要,需要做哪些工作,才能让对方的邮件服务器接受我?
2. 目前主流的各种网络协议有没有中文版的文档?求推荐……
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
连接一台SMTP服务器的客户端身份有两种
邮件客户端,一般通过AUTH LOGIN进行认证
另一个域下的SMTP服务器,不会进行AUTH LOGIN,但是一般现代SMTP服务器都会校验来访者的MX记录与IP是否匹配,这是起码的底线,否则垃圾邮件如何防止?
命令格式不正确。MAIL和RCPT命令都需要在邮件地址外面加上尖括号。
python已经内置了smtplib的标准库,应该能满足你的需求。见https://docs.python.org/2/library/smtplib.html