以前玩smtp的时候申明都是用的helo,最近在整理邮件服务的时候,才知道还有一个叫做ehlo的(太落后了)。

google了一下,了解了基本上是这么个情况:ehlo是对helo的扩展,即extend helo,可以支持authorization,即用户认证。下面我们通过一个例子来解释一下ehlo的用法:

[lyychee@mysun ~]# telnet smtp.mysun.org 25
// telnet到邮件服务器的25端口
Trying 172.18.250.250...
Connected to smtp.mysun.org (172.18.250.250).
Escape character is '^]'.
220 Welcome to my smtp server(EQManager V3.5) ESMTP
ehlo
// 用ehlo申明,表示自己需要身份验证
250-Welcome to my smtp server(EQManager V3.5)
250-AUTH LOGIN PLAIN
250-AUTH=LOGIN PLAIN
250-PIPELINING
250-SIZE 10485760
250 8BITMIME
auth login
// 用这个命令表示身份验证开始
334 VXNlcm5hbWU6
// 这句是服务器返回的,是base64编码过的“user”
emhhbmd4aW5qaQ==
// 你的用户名经过base64编码的串
334 UGFzc3dvcmQ6
// 这句也是服务器返回的,是是base64编码过的“pass”
*******
// 密码,也要经过base64编码
235 ok, go ahead (#2.0.0)
mail from:zhangxinji@mysun
// 声明邮件来源email地址
// 为了防止被发垃圾邮件,去掉了域名的后半段
250 ok
rcpt to:lyychee@citiz
// 声明邮件目的email地址
// 为了防止被发垃圾邮件,去掉了域名的后半段
250 ok
data
// 邮件开始
354 go ahead
subject:Test Mail
// 主题
from:zhangxinji@mysun
// 在邮件头中声明邮件来源(仅在outlook或foxmail中显示,跟真实的投递无关)
// 比如你rcpt给了,在这里你完全可以写,信还是会被投到lyychee
to:lyychee@citiz
// 这个也是仅现实邮件目的地址

// 中间要留空一行,对邮件头跟邮件内容加以区分。
Mail Context
// 以上是邮件内容,可以是多行。
.
// “.”号表示邮件主体的结束。
250 ok 1184307659 qp 118430765900561 (eqmail)
quit
// 请求与服务器断开链接
221 Welcome to my smtp server(EQManager V3.5)
Connection closed by foreign host.
// 邮件发送过程完成。

smtp中ehlo的使用的更多相关文章

  1. 【RL-TCPnet网络教程】第34章 RL-TCPnet之SMTP客户端

    第34章      RL-TCPnet之SMTP客户端 本章节为大家讲解RL-TCPnet的SMTP应用,学习本章节前,务必要优先学习第33章的SMTP基础知识.有了这些基础知识之后,再搞本章节会有事 ...

  2. mailsend - Send mail via SMTP protocol from command line

    Introduction mailsend is a simple command line program to send mail via SMTP protocol. I used to sen ...

  3. [转载]SMTP的几个端口的比较

    出处:https://blog.csdn.net/zhangyuan12805/article/details/78781330 1. SMTP Port 25: 25口是四个端口中最老的.这是在33 ...

  4. gitlab配置smtp时,总是提示需要鉴权,记录一下爬坑过程。

    配置好smtp,然后发送邮件时总是提示 Net::SMTPFatalError: 550 5.7.1 authentication is required 最后发现是因为在gitlab web界面上配 ...

  5. 协议基础:SMTP:使用Telnet学习SMTP协议

    协议基础:SMTP:使用Telnet学习SMTP协议 2018-07-30 20:05:50 liumiaocn 阅读数 7479更多 分类专栏: 工具 Unix/Linux   版权声明:本文为博主 ...

  6. Postfix邮件服务器搭建及配置

    一.邮件服务器(Mail Server)的传输协议 1.简单邮件传输协议(SMTP):Simple Mail Transger Protocol 2.扩展的简单邮件传输协议(ESMTP):Extend ...

  7. 【转】在RedHat上搭建自己Email服务器

    原文:http://6839976.blog.51cto.com/6829976/1323482 by LN__@linux 目前邮件服务器中,想要拥有自己的邮件服务器,单单使用senmail,pos ...

  8. 使用 telnet 发邮件

    我们都习惯了用邮件客户端软件或者登录到电子邮件站点进行收发邮件,现在尝试一下使用 Windows 自带的 Telnet 程序手工地发送一封简单的邮件,以此来稍微明白关于邮件发送的一些知识. 现在 E- ...

  9. javaweb笔记全套

    Lesson 1 一.eclipse工具的使用 1. java代码的位置 1) 选择工作空间 workspace  选择一个文件夹存放程序(代码) 不要用中文和空格 2) 新建一个java 工程(Pr ...

随机推荐

  1. nodejs爬虫系统

    其中express是服务端框架 request相当于前端的ajax请求 cheerio相当于jq 开始 首先我们先新建一个 crawler目录 执行 npm install express -g 命令 ...

  2. 一款非常棒的纯CSS3 3D菜单演示及制作教程

    原文:一款非常棒的纯CSS3 3D菜单演示及制作教程 这段时间比较忙,很久没在这里分享一些漂亮的HTML5和CSS3资源了,今天起的早,看到一款很不错的CSS3 3D菜单,觉得非常上眼,就将它分享给大 ...

  3. php禁用一些重要功能

    passthru() 功能叙述性说明:我们同意将运行外部程序和回音输出.分类似至 exec(). 临界水平:高 exec() 功能叙述性说明:同意运行外部程序(例如 UNIX Shell 要么 CMD ...

  4. 基于ip san的iscsi操作执行过程

    SAN它是storage area network(存储区域网络)速记,早期san光纤通道技术被用于.当迟到iscsi协议后出现,为了在这两者之间区分.它分IP SAN和FC SAN.FC SAN由于 ...

  5. struts2 模型分配问题和延迟加载问题

    傅型号值问题: 首先须要说明的是:Action在请求到达ActionProxy时已经创建出来了,而且对应的创建了一个值栈. 在拦截器到达之前这个图片已经OK了.Action已经创建.并且压入了值栈vs ...

  6. C# 打开指定文件或网址

    System.Diagnostics.Process.Start的妙用: 文件夹打开时自动选中一个文件,比如自动选中此目录下的指定文件方法: Process.Start("Explorer& ...

  7. easyui dataBox 增加一天,减少一天

    <table> <tr> <td><a href="javascript:void(0)" class="easyui-link ...

  8. 深入理解C指针之六:指针和结构体

    原文:深入理解C指针之六:指针和结构体 C的结构体可以用来表示数据结构的元素,比如链表的节点,指针是把这些元素连接到一起的纽带. 结构体增强了数组等集合的实用性,每个结构体可以包含多个字段.如果不用结 ...

  9. IOS开发计算文本尺寸

    在IOS开发中例如微博,QQ聊天界面中要显示大量的文字信息,这样需要计算出文字部分的尺寸,才能设计出合适的控件尺寸和位置.下面是IOS 7.0计算文本尺寸的方法.- (CGRect)boundingR ...

  10. addEventListener 与attachEvent

    第一:简单的通用方法(IE && FF) window.onload = function(){ var oDiv = document.getElementById("J_ ...