一、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: from@example.com\r\n" +
            "To: to@example.com\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协议的更多相关文章

  1. SMTP协议--在cmd下利用bat命令行发送邮件

    SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议 选择‘开始’-‘运行’,输入cmd,进入命令提示符窗口. Windows7默认没有开始Telnet服务,请在运 ...

  2. 通过telnet使用smtp协议发送邮件

    smtp协议是一个简单的邮件传输协议,利用它我们可以将邮件发送给别人,这里将通过telnet这个程序利用smtp协议从网易向gmail发送一封邮件 网上不少有说使用telnet发送邮件的文章,我也看过 ...

  3. 依据 smtp协议的简单golang 的发邮件实现

    依据 smtp协议的简单golang 的发邮件实现 协议格式如下 From:sender_user@demo.net To:to_user@demo.net Subject:这是主题 Mime-Ver ...

  4. Smtp协议与Pop3协议的简单实现

    前言 本文主要介绍smtp与pop3协议的原理,后面会附上对其的简单封装与实现. smtp协议对应的RFC文档为:RFC821 smtp协议 SMTP(Simple Mail Transfer Pro ...

  5. 基于公网smtp协议实现邮件服务器

    刚开始做邮件服务器开发,一切都是茫然的.在书上网上都很难找到一套完整的邮件服务器开发教程.在个人的摸索中碰到了很多蛋疼得问题.现终于完成了,将我的开发经验分享给大家. 开发环境:vs2012 mfc ...

  6. SMTP协议分析

    SMTP协议分析 第1章.     SMTP概述 1.1.  SMTP在邮件通信中的位置 SMTP,即简单邮件传送协议,所相应RFC文档为RFC821.同http等多数应用层协议一样,它工作在C/S模 ...

  7. 基于SMTP协议的CMD命令邮件发送

    网上有不少的这类的文章,以是参照这些文章后,自己实际运行的结果.系统使用的是WIN7 旗舰版. 1.打开CMD命令后,连接到SMTP服务器,如连接到QQ的SMTP服务,输入命令 telnet smtp ...

  8. 通过SMTP协议来发送邮件

    简单邮件传输协议 (Simple Mail Transfer Protocol, SMTP) 是事实上的在Internet传输email的标准. SMTP是一个相对简单的基于文本的协议.在其之上指定了 ...

  9. java实现发送邮件服务器,SMTP协议发送邮件

    1.采用SMTP的邮件发送协议.准备:在网易注册一个邮箱,进入设置开启SMTP/pop3协议 2.接下来就是java代码实现了,下面都有注释,就不多做解释了. public class mail { ...

  10. AspNetCore 目前不支持SMTP协议(基于开源组件开发邮件发送,它们分别是MailKit 和 FluentEmail )

    net所有的功能都要重新来一遍,集成众多类库,core任重道远,且发展且努力!! 我们都知道,很多的邮件发送都是基于这个SMTP协议,但现在的.net core对这方面还不太支持,所以我们选择这两个组 ...

随机推荐

  1. 使用Python扫描端口情况

    #!/usr/bin/python# -*- coding:utf8 -*-# Python:          2.7.8# Platform:        Windows# Authro:    ...

  2. 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(22)-权限管理系统-模块导航制作

    原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(22)-权限管理系统-模块导航制作 最近比较忙,系统难度独步增加,文章的发布速度明显比以前慢了. 由于我们 ...

  3. 分享一个牛逼的PHP无限极分类生成树方法,巧用引用(转)

    你还在用浪费时间又浪费内存的递归遍历无限极分类吗,看了该篇文章,我觉得你应该换换了.这是我在OSChina上看到的一段非常精简的PHP无限极分类生成树方法,巧在引用,整理分享了. function g ...

  4. JMX 与系统管理--转

    前言 在 Java 程序的运行过程中,对 JVM 和系统的监测一直是 Java 开发人员在开发过程所需要的.一直以来,Java 开发人员必须通过一些底层的 JVM API,比如 JVMPI 和 JVM ...

  5. ios--绘图介绍

    iOS–绘图介绍 绘制图像的三种方式 一. 子类化UIView,在drawRect:方法画图 执行方法时,系统会自行创建画布(CGContext),并且讲画布推到堆栈的栈顶位置 执行完毕后,系统会执行 ...

  6. phpnow安装教程

    点评:搭建 PHP 其实不很难,只是有点繁琐.要是自己搭建一次 PHP + MySQL 环境很是费时.更糟的是,很多新手在配置 PHP 时常常出现这样那样的问题.诸如 mysql 扩展.zend 安装 ...

  7. Android Camera开发:使用TextureView和SurfaceTexture预览Camera 基础拍照demo

    Google自Android4.0出了TextureView,为什么推出呢?就是为了弥补Surfaceview的不足,另外一方面也是为了平衡GlSurfaceView,当然这是本人揣度的.关于Text ...

  8. 11.2 morning

    noip模拟题day1——棋盘上的问题 day1模拟题 By FancyCoder总览(Overview)注意事项:共3道题目,时间2.5小时.Pascal选手允许使用math库和ansistring ...

  9. 树形dp练习

    /*poj 1463 最小点覆盖 匈牙利*/ #include<iostream> #include<cstdio> #include<cstring> #defi ...

  10. Unity3D 游戏的碰撞

    首先创建两个精灵,然后都绑定上碰撞方法(这个是在上一篇文章的基本上): 不过 要注意一点就是碰撞器需要挂一个重力组件,不然无效 所以添加了差不多就能够实现物体碰撞了: 接下来技术写代码,让碰撞的时候进 ...