邮件的发送是基于smtp协议的。邮件客户端软件给smtp服务器传送邮件和smtp服务器之间传送邮件也都是基于smtp协议的。邮件客户端软件接受邮件是主要基于pop3协议的。

下面介绍利用windows命令telnet 基于smtp协议发送邮件。

这里是用sina油箱(错别字我可不想改了,明白就行了),其他油箱会存在这样或那样的小问题,而我的目标很简单,只是想尽快用telnet命令发送一封邮件感受一下。最开始试了 163的油箱,不过输入用户名密码后会响应:550 用户被锁定,很显然需要花时间去解决这个问题,虽然网上随便一查就会有一大堆解决办法,至于真假我没去试过,因为我现在的目标这个。后来也试了 gmail油箱,不过它的响应和书上的有点出入,所以也放弃了,最后选择了sina油箱,当然我也是新申请的。

这里用到smtp协议的6个命令。6个命令就能发送邮件,有点不可思议。下面列举出所有:

ehlo    见面当然得打招呼了,后面接任意名字

AUTH    选择输入用户名密码的方式,sina的需要进行 base64 编码,后面将有转化的类提供,很简单

mail from:    说明邮件来自哪里,不一定为邮件地址,不过最好还是写成正确的email地址

rcpt to:    说明邮件发送到哪里,一定要为正确的email地址

data    发送的正文,结束为:回车,.,回车。即两个回车中间一个点

quit    断开连接

下面是对字符串进行 base64 编码的类:

  1. package sh.base64Encode;
  2. import sun.misc.BASE64Encoder;
  3. public class Base64Encoder {
  4. public static String encode(String str)
  5. {
  6. return new BASE64Encoder().encode(str.getBytes());
  7. }
  8. public static void main(String[] sh)
  9. {
  10. String name = "youmailname";    // email地址,不用 @以及后面的,如:name = "studymail";
  11. String psw = "youmailpassword"; // email密码
  12. System.out.println(encode(name));
  13. System.out.println(encode(psw));
  14. }
  15. }

上面的类输出的则是验证身份时需要用到的。下面正式开始了

1,打开windows命令窗口,键入:telnet smtp.sina.com.cn 25

smtp.sina.com.cn 是sina邮件服务器,25 是服务器的端口号,

成功连接的响应为:220 smtp.sina.com.cn ESMTP SINAMAIL <postfix Rules!>,

前面的 220 即为响应码,只要它是 220 就表示成功连接了,

其中的 ESMTP 表示 扩展SMTP协议,

2,成功连接后就想服务器打招呼吧,

键入:ehlo cup

上面的 cup 可以换成别的字符串,成功响应如下图:

看到上图里面有提示有哪些验证方式,有 LOGIN,即表示用户名和密码将需要进行 base64编码。

3,选择验证方式,这里选择上面的 LOGIN,

键入:AUTH LOGIN

成功后将响应:334

334 表示命令未完成,后面接着输入编码后的email用户名,回车,将又响应:334,再输入编码后的密码,回车,这次如果验证通过将响应:235 。

4,输入发件人,

键入:mail from: <studyjavamail@sina.com>

成功将响应:250 Ok

发件人最好写成正确的email地址,因为一般邮件服务器也会验证的

5,输入收件人,

键入:rcpt to: <studyjavamail@sina.com>

成功将响应:250 Ok

收件人必须是正确的email地址,

并且可以输入多个 rcpt to 命令,将同时给多个email地址发送邮件

6,写邮件内容,

键入:data (+ 内容),以 回车 .  回车 结束内容的书写,

7,断开连接,

键如:quit

8,赶紧登陆邮箱看看吧,看是否真收到了,反正我是收到了的,呵呵

用telnet命令,SMTP发送邮件的更多相关文章

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

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

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

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

  3. [计算机网络] C++模拟telnet登陆SMTP服务发送邮件过程

    在百度文库中的<使用telnet协议收发邮件>,我们可以很清楚地看到如何通过telnet来进行发送邮件,下面是一些需要用到的命令,通过以下命令可以很容易实现邮件发送功能.为了更好地理解其中 ...

  4. telnet命令发送邮件

    下面的例子是用qq的smtp服务器. set localecho 本地回显启用 smtp.qq.com Esmtp QQ Mail Server helo sis smtp.qq.com//服务器返回 ...

  5. netstat和telnet命令在Windows7中的用法(转载)

    在网络方面我们常常会用到如下命令: (1)ping命令:我们常常用来判断2台或2台以上的机器间是否网络连通. ping 192.168.1.88 -t 如果想看任何命令的参数是什么意思,我们只需要:命 ...

  6. 一步一步从原理跟我学邮件收取及发送 3.telnet命令行发一封信

    首先要感谢博客园管理员的及时回复,本系列的第二篇文章得以恢复到首页,这是对作者的莫大鼓励.说实在的本来我真的挺受打击的.好在管理员说只是排版上有些问题,要用代码块修饰下相关的信息.说来惭愧因为常年编码 ...

  7. 再谈用java实现Smtp发送邮件之Socket编程

    很多其它内容欢迎訪问个人站点   http://icodeyou.com 前几天利用Socket实现了用java语言搭建webserver,全程下来应该会对Socket这个东西已经使用的很熟悉了.尽管 ...

  8. 用telnet命令,POP3接收邮件

    昨天已经成功利用telnet命令发送了邮件,今天接着来,只能发送不能接收多郁闷. 邮件的接收这里是基于pop3协议的,pop3协议共定义了12条与接收相关的邮件,如下面简单解释: 首先是与登陆验证相关 ...

  9. 运维监控-Zabbix Server 使用QQ SMTP发送邮件报警及定制报警内容

    运维监控-Zabbix Server 使用QQ SMTP发送邮件报警及定制报警内容 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客采用腾讯邮箱,想必大家都对QQ很了解,所以 ...

随机推荐

  1. windows禅道环境搭建

    zentao官网的几个网址 http://www.zentao.net/ http://www.zentao.net/article-view-79863.html   搭建环境需要下载两个文件 1) ...

  2. ios沙盒查找图片展示

    iOS如何找到自己的沙盒 在ios开发我们会用到沙盒,由于自己对沙盒理解的不够,所以找不到沙盒文件在哪里,当然要知道路径了 例如我的路径 NSString* cachepath = [NSHomeDi ...

  3. Header,Tab,ListView三个在线性布局中,ListView向上滑动时,Tab标签悬停在顶部,然后Header向上滑出去,这个效果的做法

    效果如图: 这个效果可以用一个框架来做,首先在网上搜关键字,然后搜索的结果在这里:http://stackoverflow.com/questions/20906964/viewpager-with- ...

  4. 升级3.2.3后 could not find driver

    求解,之前一切正常,升级3.2.3后提示找不到数据库驱动我用的是mysql,也没有设置DB_DSN错误位置FILE: C:\Users\Administrator\workspace\test\Thi ...

  5. Java线程:新特征-有返回值的线程

    http://lavasoft.blog.51cto.com/62575/222082/ Java线程:新特征-有返回值的线程 2009-11-04 17:33:56 标签:返回值 职场 线程 休闲 ...

  6. how to download image from any web page in java 下载图片

    http://stackoverflow.com/questions/5882005/how-to-download-image-from-any-web-page-in-java (throws I ...

  7. hdu_3562_B-number(记忆化搜索|数位DP)

    题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=3652 题意:给你一个n,为比n小的能整除13并数字中有13的数有多少个 题解:记忆化搜索:记dp[i] ...

  8. Sharepoint 弹出消息提示框 .

    在event receiver中如何弹出一个类似winform中messagebox.show 的框? 那我要对用户显示一些错误信息或者提示信息怎么搞? 1. 如果是在ItemAdding或者其他进行 ...

  9. As3.0 Interface 与类的使用

    来源:http://blog.sina.com.cn/s/blog_4d65c19e0100bfkb.html 抽象类:又叫抽象基类:可以包含一般类所包含的所有特性,例如,字段,属性,方法,抽象类不能 ...

  10. java和.net的类比

    原文地址在http://www.seguetech.com/blog/2013/06/03/dotnet-vs-java-how-to-pick