SMTP 相关基础知识
SMTP 协议
-简单理解就是发邮件协议
- 那就会有收邮件协议POP3,升级版本协议是IMAP协议;
- SMTP 协议又可以分为加密传输和不加密传输。 (邮件内容是否加密SSL,国外称SMTPS,但我看国内配置中没有这个说法,就见
都是25端口、465端口等或者分别代表着是否支持SSL) - 就是我们通过自己写代码,向SMTP服务器端登录发送邮件给服务器,然后服务器会讲邮件派送到目标邮箱。 (希望这个能让我们快速了解SMTP协议的作用)
SMTP协议内容
- 没有细细研究这个协议, 都是用到什么,网络查看。 简单点理解字符串协议"command <> ......",
- 详细协议内容还是自行再search。 (为什么没有研究很细,那是因为网络开源的封装好了协议,不用知道协议上,
- 先tcp连接25端口,2,发送握手命令helo smtp;3,发送登录命令auth login 等等;前面几个单词就是协议格式内容;其他就没深究了)
SMTP调试方式
- 在调试前,必须先讲服务器中SMTP功能打开,默认很多服务器都是不打开的。(一般在登录你自己的网页邮箱中,设置项中具体,自行search)
- telnet ipaddress port (address和port 是smtp服务器,不知道请自行search),接下来的就是纯命令的交互;详细的命令不一一描述,主要分享的是总结思路。
- golang 中标准库net/smtp , beego util/email 等都可以现场成调试发送Email。
SMTP服务器上配置问题
- 一般我们认为登录邮箱就是账号、密码就可以。 但是正常outlook, foxmail 邮箱,并不是通过SMTP发送邮箱的方式。
目前我尝试163邮箱
-
- 配置打开pop/smtp 时候需要我用手机扫描二维码,然后会有一个授权码。 注意这个授权码很重要,一定保存好
-
- 下面是beego上email上显示登录代码,将原来很多开源库上password字段参数内容填:授权码。 密码在这里就没有用了。
config := `{"username":"andarmworld@163.com","password":"CZLGJFOMxxxxxxx","host":"smtp.163.com","port":25}`
并非详细的手把手步骤,但耐心看法思路是正确的。 (遇到问题可以留言交流)
SMTP返回码
(有很多返回码,但没有一一记录;只记录自己遇到问题的和印象深刻的)
- 553 Mail from must equal authorized user
- 意思是接收端的账号有问题,所有我更改了接收人的邮箱问题就解决就了。
- 535 Login Fail. Please enter your authorization code to login.
- 535 Login fail. Authorization code is expired
//是由于的qq邮箱的授权码很久之前的,怀疑不能再用,所以重新申请; 非SSL 25port测试通过 - Error during AUTH 535 Error: authentication failed
// 万万没想到这个提示是服务器地址不正确的原因,由于我前面调试163邮箱,所以地址是163 sever address,后面修改qq smtp server ,QQ服务器的SSL方式也通了。
腾信邮箱
- 开启POP3/SMTP/IMAP功能为什么需要先设置独立密码? ()
https://service.mail.qq.com/cgi-bin/help?subtype=1&&no=1001220&&id=28 - 腾讯的开始开始调试没有通过,由于我设置英语语言,设置配置打开smtp和imap 点击了保存不生效。后面中文再设置竟然可以正常设置了。 (这bug导致我浪费不少时间)
- 另外查找腾讯不加密通信资料的时候,网上没有说支持,实测25 port 是通过的。测试端口是否支持,都使用上面的telnet命令即可。(默认window系统不支持这命令,需要设置;需要自行search)linux 使用telnet 默认支持。
163 邮箱
本文来自博客园,作者:ljymoonlight,转载请注明原文链接:https://www.cnblogs.com/ljymoonlight/p/15083841.html
posted on 2021-07-31 11:54 ljymoonlight 阅读(301) 评论(0) 收藏 举报
浙公网安备 33010602011771号