ljymoonlight

导航

SMTP 相关基础知识

SMTP 协议

-简单理解就是发邮件协议

  • 那就会有收邮件协议POP3,升级版本协议是IMAP协议;
  • SMTP 协议又可以分为加密传输和不加密传输。 (邮件内容是否加密SSL,国外称SMTPS,但我看国内配置中没有这个说法,就见
    都是25端口、465端口等或者分别代表着是否支持SSL)
  • 就是我们通过自己写代码,向SMTP服务器端登录发送邮件给服务器,然后服务器会讲邮件派送到目标邮箱。 (希望这个能让我们快速了解SMTP协议的作用)

SMTP协议内容

  • 没有细细研究这个协议, 都是用到什么,网络查看。 简单点理解字符串协议"command <> ......",
  • 详细协议内容还是自行再search。 (为什么没有研究很细,那是因为网络开源的封装好了协议,不用知道协议上,
  1. 先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邮箱

    1. 配置打开pop/smtp 时候需要我用手机扫描二维码,然后会有一个授权码。 注意这个授权码很重要,一定保存好
    1. 下面是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 邮箱

posted on 2021-07-31 11:54  ljymoonlight  阅读(301)  评论(0)    收藏  举报