使用Telnet程序手工发送邮件

来源:互联网 发布:淘宝正义哥卖假货么 编辑:程序博客网 时间:2024/05/16 15:18

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

  现在 E-mail 的传输一般都使用了 ESMTP (扩展的简单邮件传输协议),SMTP 中定义了 18 条命令,用于发送一封邮件。但是作为一个测试实验的话,我们只需要其中最基本的6条命令。

  如下(其中的代表一个空格,代表回车加换行,即写代码时的 \r\n ):

  ehlo主机名

  SMTP 邮件发送程序与SMTP邮件接收程序建立连接的第一条必须的命令,主机名是当前邮件发送者的主机名;

  authlogin

  现在一般的邮箱都需要进行用户名、密码验证,而且SMTP 邮件服务器一般都使用 Login 验证方式http://guanghanfuzhuang.com,因此就不用考虑其他两种验证方式了;

  mailfrom:发送人邮箱地址

  从命令中很明显地看出来 mail 命令用于指定邮件发送者的邮箱地址;

  rcptto:收件人邮箱地址

  同理,rcpt 命令用于指定邮件接收人的邮箱地址;

  data

  data 命令用于表示该命令之后的所有内容、数据都将被作为邮件的相关内容,直到遇到.标识符,即一个句号“.”结束邮件的发送内容;

  quit

  该命令结束邮件发送过程,关闭本机与SMTP 邮件服务器的网络连接。

  在该测试中,sducc1123我在mail.163.com 和 mail.sina.com 分别注册了 test_hao@163.com 和 test_hao@sina.cn 两个邮箱,密码都是 123456 。由于这两个邮件服务器都需要进行用户名、密码进行身份验证,而且需要将我们的用户名、密码进行 BASE64 编码之后在进行发送验证,故我们使用 Java 中的 sun.misc.BASE64Encoder 类写一个 BASE64 转码程序