SMTP-POP3协议简介以及使用Telnet客户端收/发邮件(163邮箱)

每篇一句:

It is not our abilities that show what we truly are, it is our choices.


SMTP-POP3协议简介:
  1. SMTP:

    简单邮件传输协议,全称: Simple Mail Transfer Protocol。SMTP是因特网电子邮件中主要的应用层协议,使用TCP可靠数据传输服务,用于将邮件从发送方的用户代理发送到发送方的邮件服务器,以及将邮件从发送方的邮件服务器发送到接收方的邮件服务器。是一种“推协议”。

    • 特点:

      • 限制所有邮件报文的文体部分,不只是其首部,只能采用简单的7比特ASCII表示。如果要传输多媒体数据,需要先编码为ASCII编码。(20世纪80年代早期,传输能力不足)
      • SMTP一般不使用中间邮件服务器发送邮件,即使这两个邮件服务器位于地球两端。
    • C-S交互:

      SMTP默认使用25端口。首先客户SMTP(C)在25端口建立一个到服务器SMTP(S)的TCP连接。如果服务器没有开机,客户会在稍后继续尝试连接。一旦连接建立,服务器和客户执行某些应用层的握手,SMTP的客户和服务器在传输信息前先相互介绍。在SMTP握手的阶段,SMTP客户说明发送方的邮件地址和接收方的邮件地址。一旦该SMTP客户端和服务器彼此介绍后,客户开始发送报文。该客户如果有另外的报文要发送到此服务器,就在该相同的TCP连接上重复处理。

    • 常用命令:

      • helo :向服务器介绍自己
      • auth login :登录,之后会输入用户名以及密码(base64格式)
      • mail from : 说明发件方
      • rcpt to : 说明收件方
      • data : 之后会提示你输入邮件信息,以"CRLF.CRLF"结束。
      • quit : 断开连接

  2. POP3:

    第三版的邮局协议,全称:Post Office Protocol -- Version3。POP3是一种极为简单的邮件访问协议,同样基于TCP,用于将邮件从接收方的邮件服务器传送到接收方的用户代理。是一种“拉协议”。

    • C-S交互:

      POP3默认使用110端口。首先用户代理(客户C)建立了一个到邮件服务器110端口的TCP连接,然后POP3按照三个阶段进行工作:特许(authorization),事务处理以及更新。在第一个阶段即特许阶段,用户代理以名文发送用户名和口令鉴别用户。在第二个阶段即事务处理阶段,用户可以进行以下操作:取回邮件、对邮件做删除标记、取消邮件删除标记、获取邮件的统计信息。在第三个阶段即更新阶段,出现在客户发出了"quit"命令之后,结束这次POP3回话。这时,邮件服务器才会删除那些被标记为删除的邮件。

    • 常用命令:

      • user : 输入用户名
      • pass : 输入密码
      • list : 返回关于邮箱的统计:邮件总数、总字节数以及每个邮件的大小
      • list index : 返回关于第index邮件的统计:总字节数
      • stat : 返回关于邮箱的统计:邮件总数和总字节数
      • retr index : 返回第index邮件的内容,以"CRLF.CRLF"表示邮件结束。
      • dele index : 对第index邮件加删除标记
      • rset : 重置所有标记为删除的邮件,用于撤消dele命令
      • quit : 退出,会执行删除操作

使用Telnet客户端连接163邮箱,收/发邮件
  1. 在开始之前,请确认你的163邮箱账户开启了SMTP/POP服务,并且开启设置了“授权码”

    • 开启SMTP/POP服务:

    服务

    • 授权码:

    授权码


    提前说明:以下内容中,‘c:’代表客户端输入,’s:’ 代表服务器返回,在Telnet客户端并不显示。

  2. 连接163的SMTP服务器发送邮件:

    C: telnet smtp.163.com 25
    S: 220 163.com Anti-spam GT for Coremail System (163com[20141201])
    C: helo localhost  # helo 后跟的字符可以随意
    S: 250 OK
    C: auth login
    S: 334 dXNlcm5hbWU6 
    C: MTg1Nz****5Njk=  # 用户名(不包含@163.com这些), base64编码格式
    S: 334 UGFzc3dvcmQ6
    C: TGluY***OTk3   # 授权码(注意不是登录时的密码,而是授权码),base64编码格式
    S: 235 Authentication successful
    C: mail from: <185****0969@163.com>  # 发送邮件的地址(必须是刚才登录的账户)
    S: 250 Mail OK
    C: rcpt to: <143***2536@qq.com>  # 目标地址
    S: 250 Mail OK
    C: data  # 告知服务器要输入邮件内容
    S: 354 End data with <CR><LF>.<CR><LF> 
    C:  # 发送给qq邮箱的话,最好包含from、to以及subject,不然可能会拒收
    from:185****0969@163.com
    to:143***2536@qq.com
    subject:hello
    
    hello
    .
    S: 250 Mail OK queued as smtp7,C8CowADXW6cjR+Faq3JqQw--.57969S2 1524713356
    C: quit
    S: 221 bye
    

    检查对应QQ邮件的收件箱(或垃圾箱),证明邮件发送成功。

  3. 连接163的pop服务器接收邮件:

    C: telnet pop.163.com 110
    S: +OK Welcome to coremail Mail Pop3 Server (163coms[b62aaa251425b4be4eaec4ab4744cf47s])
    C: user 185****0969@163.com  # 用户名
    S: +OK core mail
    C: pass L********7  # 授权码
    S: +OK 5 message(s) [27351 byte(s)]  # 含义:共五个邮件,共27351bytes大小
    C: stat
    S: +OK 5 27351
    C: list
    S:  # 邮件的统计信息,以"."结束
    +OK 5 27351
    1 2731
    2 3393
    3 7339
    4 3305
    5 10583
    .
    C: list 1  
    S: +OK 1 2731  # 第一个邮件的信息
    C: retr 1
    S:  # 第一个邮件的内容
    +OK 2731 octets
    *****
    .
    C: dele 1  # 对第一个邮件添加删除标记
    S: +OK core mail
    C: rset  # 重置所有标记为删除的邮件,撤消dele命令
    S: +OK core mail
    C: quit  # 退出服务器
    S: +OK core mail
    

    特别需要注意的是:

    • mail fromrcpt to命令中“:”前无空格,后加一个空格再接其他信息。

    • 所有命令以及数据最好一次输入正确,不要有任何修改,否则可能会报502 Error: command not implemented500 Error: bad syntax的错误。

    • 确认命令输入无误,还是报错,请再次尝试,可能是服务器较为繁忙。

参考资料:
  • 计算机网络-自顶向下方法(原书第六版)

如果本文有什么错误或不足之处,欢迎指出。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值