telnet使用smtp协议发送qq邮件

操作步骤

  1. telnet命令调试QQ邮箱的smtp服务器

    telnet smtp.qq.com 25
    
    # 响应
    Trying 183.3.225.42...
    Connected to smtp.qq.com.
    Escape character is '^]'.
    220 newxmesmtplogicsvrsza5.qq.com XMail Esmtp QQ Mail Server.
    
  2. 使用EHLO命令,指示ESMTP会话开始。服务器可以在它对 EHLO 的响应中表明自己支持 ESMTP 命令

    EHLO smtp.qq.com
    
    # 响应
    250-newxmesmtplogicsvrsza5.qq.com
    250-PIPELINING
    250-SIZE 73400320
    250-STARTTLS
    250-AUTH LOGIN PLAIN
    250-AUTH=LOGIN
    250-MAILCOMPRESS
    250 8BITMIME
    
  3. 使用AUTH关键字进行身份验证,这里使用AUTH LOGIN,然后输入Base64编码的用户名和QQ邮箱授权码

    AUTH LOGIN
    // base64编码的`Username:`
    $ 334 VXNlcm5hbWU6  
    
    // base64编码的`Password:`
    $ 334 UGFzc3dvcmQ6
    
    # 响应
    235 Authentication successful
    
  4. 使用MAIL命令,通过标识邮件的发件人来标识邮件传输开始;以 MAIL FROM 的形式使用。

    MAIL FROM:<[email protected]>
    
    # 响应
    250 OK.
    
  5. 使用RCPT命令标识邮件的收件人;以 RCPT TO 的形式使用。

    RCPT TO:<[email protected]>
    
    # 响应
    250 OK
    
  6. 使用DATA命令发送数据,以.符号代表结束

    DATA
    
    # 响应
    354 End data with <CR><LF>.<CR><LF>.
    
  7. 输入内容

    FROM: [email protected]
    TO: [email protected]
    SUBJECT: shell email
    
    this is body msg!
    .
    
  8. 使用QUIT命令退出

    QUIT
    
    # 响应
    221 Bye.
    Connection closed by foreign host.
    

此时,[email protected]邮箱就会收到一封标题为shell email,内容为

*this is body msg!*的邮件了。