SMTP 协议
-简单理解就是发邮件协议
- 那就会有收邮件协议POP3,升级版本协议是IMAP协议;
- SMTP 协议又可以分为加密传输和不加密传输。 (邮件内容是否加密SSL,国外称SMTPS,但我看国内配置中没有这个说法,就见
都是25端口、486端口等或者分别代表着是否支持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
- 意思是接收端的账号有问题,所有我更改了接收人的邮箱问题就解决就了。