- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
北交计算机网络13281069_谢洁_用SMTP实现EMAIL客户端选编
用SMTP 实现EMAIL 客户端
训练目的
运用各种编程语言实现基于smtp协议的Email客户端软件。通过本实验,能够对网络编程有进一步的理解和掌握,并能够理解smtp协议的细节。
SMTP 实现EMAIL 客户端功能程序设计
SMTP客户机(运行在发送邮件服务器上)在25号端口建立一个到SMTP服务器(运行在接收邮件服务器上)的TCP连接。
客户机和服务器执行一些应用层的握手。SMTP客户机指明发送方的邮件地址和接收方的邮件地址。
客户机发送报文,SMTP利用TCP提供的可靠数据传输无差错地将邮件投递打牌接收服务器。
客户机如果有另外的报文要发送到该服务器,就在该相同的TCP链接上重复这种处理,否则,它指示TCP关闭连接。
测试结果与分析
使用eclipse执行编写好的SMTP实现EMAIL 客户端功能程序,显示如下界面:
在界面中填写好信息,点击send按钮,进行邮件发送。
邮件发送完成,下面的JtextArea框中显示出发送过程的SMTP客户机和SMTP服务器之间交换的报文脚本。
打开邮箱,查看到该邮件已经成功的发送到接收方邮箱之中。
SMTP客户机和SMTP服务器之间交换的报文脚本
C: helo
S: 250 OK
C: AUTH LOGIN
S: 334 dXNlcm5hbWU6
C: MTMyODEwNjlAYmp0dS5lZHUuY24=
S: 334 UGFzc3dvcmQ6
C: MTMyNDM1
S: 235 Authentication successful
C: MAIL FROM
S: 250 Mail OK
C: RCPT TO:519399762@
S: 250 Mail OK
C: DATA
S: 354 End data with CRLF.CRLF
C: Subject:用SMTP实现EMAIL客户端实验
C: From
C: To:519399762@
C:
C: 测试文本内容:用SMTP实现EMAIL客户端实验
C: .
S: 250 Mail OK queued as Mp5wygBHKAUiDj9WHvDBAA--.16623S2
C: QUIT
S: 221 Bye
分析:从上面客户机与服务器交换报文脚本信息中可以看出,客户机程序从邮件服务器向邮件服务器发送了一个报文,报文的首部为:
Subject:用SMTP实现EMAIL客户端实验
From
To:519399762@
在报文首部之后,紧接着是一个空白行,然后是报文的主体。该客户机发送的命令:HELO(是HELLO的缩写)、MAIL FROM、RCPT TO、DATA以及QUIT完成了客户机与服务器的握手、指明发送方和接收方的邮件地址、告诉服务器将要传送邮件内容以及结束等。客户机通过发送一个包含一个句点的行,告诉服务器该报文结束了。(按照ASCII码的表示方法,每个报文以CRLF.CRLF结束,其中的CR和LF分别表示回车和换行。)服务器对每条指令做出回答,其中每个回答含有一个回答码和一些英文解释。
实验总结
通过本实验,我对网络编程有进一步的理解和掌握,并能够理解smtp协议的细节。通过实验中程序运行输出的SMTP客户机与SMTP服务器之间报文脚本的交换,我可以更清楚的看到在整个邮件发送的过程中服务器和客户机之间是怎么进行信息交换的,同时我还了解了邮件的报文格式,对报文的首部和报文的主体部分有了更加深刻的了解。
SMTP 实现EMAIL 客户端功能程序代码
User.java文件:
package mailClient;
public class User {
private String base64Name = ;
private String base64Pass = ; // 用于用户登陆
public void setNameAndPass(String name, String pass) {
this.base64Name = name;
this.base64Pass = pass;
}
public String getBase64Name() {
return base64Name;
}
public String getBase64Pass() {
return base64Pass;
}
}
SendMail.java文件:
package mailClient;
import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.Actio
您可能关注的文档
最近下载
- 喷漆作业指导书.doc VIP
- 集肤效应电伴热.ppt
- UL 508认证标准(中文版).pdf VIP
- 风力发电场安全规程DLT796-2012.docx VIP
- 2025重庆市地产集团招聘项目管理、会计、招商策划、人力资源等岗位招聘11人笔试模拟试题及答案解析.docx VIP
- 【三菱】MDS-B-SVJ2系列 规格使用说明书(Chn).pdf VIP
- 风力发电场安全规程DLT796-2012.docx VIP
- 2025重庆市地产集团招聘项目管理、会计、招商策划、人力资源等岗位招聘11人笔试备考试题及答案解析.docx VIP
- 农村幼儿园教师进城考试测试卷(含答案).pdf VIP
- 交叉作业安全专项施工方案.pdf VIP
文档评论(0)