zoukankan      html  css  js  c++  java
  • SMTP命令简介


    http://njdg.net/bbs/?u=2517 
    SMTP命令简介

    什么是 SMTP 
    SMTP (Simple Mail Transfer Protocol) : 电子邮件从客户机传输到服务器或从某一个服务器传输到另一个服务器使用的传输协议。 SMTP 是请求/响应协议,命令和响应都是基于 ASCII 文本,并以 CR 和 LF 符结束。响应包括一个表示返回状态的三位数字代码。SMTP 在 TCP 协议 25 端口监听连接请求。 

    什么是 ESMTP 
    ESMTP (Extended SMTP),顾名思义,扩展 SMTP 就是对标准 SMTP 协议进行的扩展。它与 SMTP 服务的区别仅仅是,使用 SMTP 发信不需要验证用户帐户,而用 ESMTP 发信时, 服务器会要求用户提供用户名和密码以便验证身份。验证之后的邮件发送过程与 SMTP 方式没有两样。 

    SMTP 命令 
    SMTP 命令包括: 
    HELO 向服务器标识用户身份。发送者能欺骗,说谎,但一般情况下服务器都能检测到。 
    EHLO 向服务器标识用户身份。发送者能欺骗,说谎,但一般情况下服务器都能检测到。 
    MAIL FROM 命令中指定的地址是发件人地址 
    RCPT TO 标识单个的邮件接收人;可有多个 RCPT TO;常在 MAIL 命令后面。 
    DATA 在单个或多个 RCPT 命令后,表示所有的邮件接收人已标识,并初始化数据传输,以 CRLF.CRLF 结束 
    VRFY 用于验证指定的用户/邮箱是否存在;由于安全方面的原因,服务器常禁止此命令 
    EXPN 验证给定的邮箱列表是否存在,扩充邮箱列表,也常被禁用 
    HELP 查询服务器支持什么命令 
    NOOP 无操作,服务器应响应 OK 
    RSET 重置会话,当前传输被取消 
    QUIT 结束会话 

    连接 Winmail Server 使用 SMTP 命令发送邮件 
    例如:安装 Winmail 的邮件服务器IP是192.168.0.1 
    telnet 192.168.0.1 25 --------------------------------------- 使用 telnet 命令连接服务器 25 端口 
    Trying 192.168.0.1... --------------------------------------- 正在连接服务器 25 端口 
    Connected to 192.168.0.1. ----------------------------------- 连接服务器 25 端口成功 
    220 Winmail Mail Server ESMTP ready ------------------------- 显示服务器的标识名称 (Winmail 管理工具->高级设置->系统参数->基本参数中可更改) 
    helo cnu.com ------------------------------------------------ 向服务器标识用户身份,发信不要认证,跳过下面几步直接发送 mail from 命令 
    250 Winmail Mail Server 
    ehlo cnu.com ------------------------------------------------ ESMTP 命令,发信需要认证。 
    250-Winmail Mail Server 
    250-PIPELINING 
    250-AUTH=LOGIN PLAIN 
    250-AUTH LOGIN PLAIN 
    250-SIZE 20480000 
    250 8BITMIME 
    auth login ------------------------------------------------- 进行用户身份认证 
    334 VXNlcm5hbWU6 
    Y29zdGFAYW1heGl0Lm5ldA== ----------------------------------- BASE64 加密后的用户名 
    334 UGFzc3dvcmQ6 
    MTk4MjIxNA== ----------------------------------------------- BASE64 加密后的密码 
    235 auth successfully -------------------------------------- 身份认证成功 
    (535 auth failure ------------------------------------------ 身份认证失败) 
    发到本系统中域名下的账户可跳过身份认证。 
    mail from: <test1@domain.com> ------------------------------ mail from 地址 test1@domain.com 
    250 ok ----------------------------------------------------- 命令执行成功 
    rcpt to: <test2@domain.com> -------------------------------- 递送给地址 test2@domain.com 
    250 ok ----------------------------------------------------- 命令执行成功 
    data ------------------------------------------------------- 数据传输初始化 
    354 go ahead ----------------------------------------------- 开始传输数据 
    From: test1@domain.com 
    To: test2@domain.com 
    Date: Mon, 25 Oct 2004 14:24:27 +0800 
    Subject: test mail 

    Hi, test2 
    This is a test mail, you don't reply it. 

    ------------------------------------------------------------ 数据内容,包括BASE64加密后的邮件内容, 以 CRLF.CRLF 结束数据传输 
    250 ok message accepted for delivery ----------------------- 命令执行成功 
    quit ------------------------------------------------------- 结束会话 
    221 Winmail Mail Server 
    Connection closed by foreign host .------------------------- 断开连接
     



  • 相关阅读:
    fixed 和 fixed
    SVN命令概要
    项目目录的划分
    作用域(scope), 定义空间(declaration space) 和 生存期(lifetime)
    可伸缩性最佳实践:来自eBay的经验(转)
    TCP连接可用性检测
    面向对象设计
    如何截取Http请求
    eBay架构
    .net3.5下的Socket通信框架
  • 原文地址:https://www.cnblogs.com/gzhnan/p/569752.html
Copyright © 2011-2022 走看看