网站大量收购独家精品文档,联系QQ:2885784924

使用telnet协议来收发邮件(SMTP与POP3).doc

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第一部分邮件传输协议 SMTP(Simple Mail Transfer Protocol,简单邮件传输协议)定义了邮件客户端软件与SMTP服务器之间,以及两台SMTP服务器间的通信规则。SMTP服务器之间的通信规则。 SMTP协议中一共定义了18条命令,发送一封电子邮件的过程通常只需要使用其中6条命令,表1中按照发送命令的先后顺序列出了这6条命令,并描述了其语法格式及功能说明,其中,SP代表空格,CRLF代表回车和换行。 表1 SMTP命令及格式 说明 ehloSPdomainCRLF ehlo命令是SMTP邮件发送程序与SMTP邮件接收程序建立连接后必须发送的第一条SMTP命令。参数domain表示SMTP邮件发送者的主机名。 ehlo命令用于替代传统SMTP协议中的helo命令 authSPparaCRLF 如果SMTP邮件接收程序需要SMTP邮件发送程序进行认证时,它会向SMTP邮件发送程序提示它所采用的认证方式,SMTP邮件发送程序接着应该使用这个命令回应SMTP邮件接收程序,参数para表示回应的认证方式,通常是SMTP邮件接收程序先前提示的认证方式。 mailSPfrom:reverse-pathCRLF 此命令用于指定邮件发送者的邮箱地址,参数reverse-path表示发件人的邮箱地址。 reptSPto:forword-pathCRLF 此命令用于指定邮件接收者的邮箱地址,参数forword-path表示接收者的邮箱地址。如果邮件要发送多个接收者,那么应使用多条reptSPto命令来分别指定每一个接收者的邮箱地址。 dataCRLF 此命令用于表示SMTP邮件发送程序准备开始传送邮件内容,在这个命令后面发送的所有数据都将被当做邮件内容,直至遇到“CRLF.CRLF”标志符,则表示邮件内容结束。 quitCRLF 此命令表示要结束邮件发送过程,SMTP邮件接收程序接收到此命令后,将关闭与SMTP邮件发送程序的网络连接。 对于SMTP邮件发送程序发送的每一条命令,SMTP邮件程序接收程序都将回应一条响应信息。每条响应信息都以一个响应状态码开发如下所示: 250 ok 响应状态吗用于表示SMTP服务器对请求命令的处理结果和状态,它是一个三位的十进制数。响应状态码的最高位数字代表了不同的分类,当其为2时表示命令执行成功,为5时表示命令执行失败。为3时表示命令没有完成。 动手实践: 借助telnet程序手工发送邮件 在sina()中申请两个电子邮件地址,笔者在使用的两个邮箱分别为jspdevelop@和fpwjp@,第一个邮箱的登录为:javamail,读者应注册自已的电子邮箱进行实验。 要给某个SMTP服务器发送邮件,首先要获知该SMTP服务器的主机名,其中新浪的SMTP服务器主机名为 25。 当SMTP服务器要对邮件客户端软件进行用户身份验证时,邮件客户端软件需要对用户名和密码进行BASE64编码后再传递给SMTP服务器,因此要编写一个能对用户名和密码进行BASE64编码的工具程序。下面是用Java语言编写的一个对用户名和密码分别进行BASE64编码的工具程序。 例:BASE64Util.java import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import sun.misc.BASE64Encoder; class BASE64Util { public static void main(String[] args) throws IOException { System.out.println(请输入用户名:); BufferedReader in=new BufferedReader(new InputStreamReader(System.in)); String userName=in.readLine(); System.out.print(请输入密码:); String password=in.readLine(); BASE64Encoder encoder=new BASE64Encoder(); System.out.println(编码后的用户名为:+encoder.encode(userName.getBytes())); System.out.println(编码后的密码为:+encoder.encode(password.getBytes())); } } 启动windows命令行窗口,编译并运行这个Java程序,接着根据程序的提示输入已注册的sina邮箱的用户名和密码。如图1-1所示。

文档评论(0)

xuefei111 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档