smtp协议

一、smtp命令

1、HELO 向服务器标识用户身份

2、MAIL 初始化邮件传输mail from: <xxx>

3、RCPT 标识单个的邮件接收人;常在MAIL命令后面可有多个rcpt to: <xxx>

4、DATA 在单个或多个RCPT命令后,表示所有的邮件接收人已标识,初始化数据传输,以.结束

5、NOOP 无操作,服务器应响应OK

6、RSET 重置会话,当前传输被取消

7、QUIT 结束会话

 

二、邮件内容: 首部+正文

首部:

FROM:<姓名><邮件地址> 邮件发送者。

TO:<姓名><邮件地址> 邮件接收者。

CC:<姓名><邮件地址> 邮件抄送者。

SUBJECT:<邮件标题> 邮件密送者。

DATE:<时间> 发邮件的时间。

REPLY-TO:<邮件地址> 邮件的回复地址。

Content-Type:<邮件类型> 表明邮件包含文本、HTML超文本和附件的哪些类型,邮件包含多种类型时需分别指定类型。

MIME-Version:<版本>,MIME的意思是Multipurpose Internet Mail Extensions,即多用途Internet邮件扩展标准,它对传输内容的消息、附件及其他的内容定义了格式。

正文:

邮件正文

MIME段头 

MIME内容

 

三、正文例子

---------------------------------------------------------------------------------------------------------首部----------------------------------------------------------------------------

            "From: [email protected]\r\n" +
            "To: [email protected]\r\n" +
            "Content-Type: multipart/mixed; boundary=_BOUNDARY_1_\r\n" +                            ---------multipart1  
            "\r\n" +
            "--_BOUNDARY_1_\r\n" +
            "Content-Type: multipart/related; boundary=_BOUNDARY_2_\r\n" +                           ---------multipart2
            "\r\n" +
            "--_BOUNDARY_2_\r\n" +
            "Content-Type: multipart/alternative; boundary=_BOUNDARY_3_\r\n" +                      ---------multipart3
            "\r\n" +
            "--_BOUNDARY_3_\r\n" +
            "Content-Type: text/plain; charset=UTF-8\r\n" +
            "Content-Transfer-Encoding: quoted-printable\r\n" +
            "\r\n" +
---------------------------------------------------------------------------------------------------------内容---------------------------------------------------------------------------------           

    "=C2=A1Hola, se=C3=B1or!\r\n" +
           

     "--_BOUNDARY_3_\r\n" +                                                                                      -----------multipart3 MIME段头
            "Content-Type: text/html; charset=UTF-8\r\n" +                                                      ----------html 文本内容
            "Content-Transfer-Encoding: quoted-printable\r\n" +
            "\r\n" +
            "=C2=A1<b>Hola</b>, <i>se=C3=B1or</i>!</h1>\r\n" +                                       ----------multipart3  MIME内容
            "--_BOUNDARY_3_--\r\n" +
            "\r\n" +
            "--_BOUNDARY_2_\r\n" +                                                                                      -----------multipart2 MIME段头
            "Content-Type: image/jpeg; name=\"image.jpg\"\r\n" +
            "Content-Disposition: inline; filename=\"image.jpg\"\r\n" +                                        -----------inline 正文内嵌图片
            "Content-ID: <image.jpg>\r\n" +
            "Content-Transfer-Encoding: base64\r\n" +
            "\r\n" +
            base64.StdEncoding.EncodeToString([]byte("Content 2")) + "\r\n" +                         ----------multipart2  MIME内容
            "--_BOUNDARY_2_--\r\n" +
            "\r\n" +
            "--_BOUNDARY_1_\r\n" +                                                                                     -----------multipart1 MIME段头
            "Content-Type: application/pdf; name=\"test.pdf\"\r\n" +
            "Content-Disposition: attachment; filename=\"test.pdf\"\r\n" +                                -----------attachment表明为附件
            "Content-Transfer-Encoding: base64\r\n" +
            "\r\n" +
            base64.StdEncoding.EncodeToString([]byte("Content 1")) + "\r\n" +                        ----------multipart1  MIME内容
            "--_BOUNDARY_1_--\r\n",

你可能感兴趣的:(smtp)