算机网络13281069_谢洁_用SMTP实现EMAIL客户端Word格式.docx

上传人:b****1 文档编号:13063522 上传时间:2022-10-04 格式:DOCX 页数:7 大小:236.05KB
下载 相关 举报
算机网络13281069_谢洁_用SMTP实现EMAIL客户端Word格式.docx_第1页
第1页 / 共7页
算机网络13281069_谢洁_用SMTP实现EMAIL客户端Word格式.docx_第2页
第2页 / 共7页
算机网络13281069_谢洁_用SMTP实现EMAIL客户端Word格式.docx_第3页
第3页 / 共7页
算机网络13281069_谢洁_用SMTP实现EMAIL客户端Word格式.docx_第4页
第4页 / 共7页
算机网络13281069_谢洁_用SMTP实现EMAIL客户端Word格式.docx_第5页
第5页 / 共7页
点击查看更多>>
下载资源
资源描述

算机网络13281069_谢洁_用SMTP实现EMAIL客户端Word格式.docx

《算机网络13281069_谢洁_用SMTP实现EMAIL客户端Word格式.docx》由会员分享,可在线阅读,更多相关《算机网络13281069_谢洁_用SMTP实现EMAIL客户端Word格式.docx(7页珍藏版)》请在冰豆网上搜索。

算机网络13281069_谢洁_用SMTP实现EMAIL客户端Word格式.docx

helo

S:

2500K

AUTHLOGIN

334dXNIcm5hbWU6

MTMyODEwNjlAYmpOdS5IZHUuY24=

334UGFzc3dvcmQ6

MTMyNDMl

235Authenticationsuccessful

MAILFROM:

<

13281069@>

250MailOK

RCPTTO:

519399762@>

DATA

354Enddatawith<

CRxLF>

.<

CR>

LF>

Subject:

用SMTP实现EMAIL客户端实验

From:

"

To:

测试文本内容:

.

250MailOKqueuedasMp5wygBHKAUiDj9WHvDBAA-.16623S2

QUIT

221Bye

分析:

从上面客户机与服务器交换报文脚本信息中可以看出,客户机程序从邮件服务器向邮件服务器发送了一个报文,报文的首部为:

Subject:

From:

13281069@>

To:

,,,<

在报文首部之后,紧接着是一个空白行,然后是报文的主体。

该客户机发送的命令:

HELO(是HELLO的缩写)、MAILFROM,RCPTTO、DATA以及QUIT完成了客户机与服务器的握手、指明发送方和接收方的邮件地址、告诉服务器将要传送邮件内容以及结束等。

客户机通过发送一个包含一个句点的行,告诉服务器该报文结束了。

(按照ASCII码的表示方法,每个报文以CRLF.CRLF结束,其中的CR和LF分别表示回车和换行。

)服务器对每条指令做出回答,其中每个回答含有一个回答码和一些英文解释。

4.实验总结

通过本实验,我对网络编程有进一步的理解和掌握,并能够理解smtp协议的细节。

通过实验中程序运行输出的SMTP客户机与SMTP服务器之间报文脚本的交换,我可以更清楚的看到在整个邮件发送的过程中服务器和客户机之间是怎么进行信息交换的,同时我还了解了邮件的报文格式,对报文的首部和报文的主体部分有了更加深刻的了解。

5.SMTP实现EMAIL客户端功能程序代码

User.java文件:

packagemailClient;

publicclassUser{

privateStringbase64Name="

;

privateStringbase64Pass="

//用于用户登陆

publicvoidsetNameAndPass(Stringname,Stringpass){

this.base64Name=name;

this.base64Pass=pass;

}

publicStringgetBase64Name()(

returnbase64Name;

publicStringgetBase64Pass(){

returnbase64Pass;

SendMail.java文件:

importjava.awt.BorderLayout;

importjava.awt.GridLayout;

importjava.awt.event.ActionEvent;

importjava.awt.event.ActionListener;

importjava.io.IOException;

importjava.io.PrintWriter;

import.InetAddress;

import.Socket;

importjava.util.Scanner;

importmons.codec.binary.Base64;

importjavax.swing.3Button;

importjavax.swing.3Frame;

importjavax.swing.3Label;

importjavax.swing.30ptionPane;

importjavax.swing.3Panel;

importjavax.swing.3PasswordField;

importjavax.swing.3ScrollPane;

importjavax.swing.JTextArea;

importjavax.swing.3TextField;

importsun.misc.*;

publicclassSendMailextendsJFrame{

privatestaticfinallongseriaLUersionL/ID=lL;

privateinttestNum=0;

〃测试18如勺文件经过加密后循环次数

private3TextFieldfrom;

private3TextFieldto;

private3TextFieldsubject;

private3TextFieldserver;

private3TextAreamessage;

private3TextAreacomm;

privateScannerin;

privatePrintWriterout;

private3TextFielduserName;

private3PasswordFielduserPass;

privateStringcurrReponse="

//辅助性显示当前从服务器传回来的指令

privateUseruser=newUser();

publicSendMail()(

〃设置frame

setSize(600,400);

setTitle("

MySMTPClient"

);

setDefaultCloseOperation(3Frame.EXIT_ON_CLOSE);

this.setLocationRelativeTo(null);

//addtoframe

3Panelpl=new3Panel(newGridLayout(3,4));

pl.add(new3Label("

from:

));

from=new3TextField(20);

pl.add(from);

userPass:

userName=from;

userPass=new3PasswordField(20);

Stringname=userName.getText().toString().trim();

Stringpass=newString(userPass.getPassword());

if(name!

=nullSXpass!

=nullSS!

name.equalsIgnoreCase("

)&

&

!

pass.equalsIgnoreCase("

))(name=newString(Base64.encodeBase64(name.getBytes()));

pass=newString(Base64.encodeBose64(pass.getBytes()));

user.setNameAndPass(name,pass);

pl.add(userPass);

to:

to=newJTextField(20);

pl.add(to);

SMTPserver:

server=new3TextField(20);

pl.add(server);

subject=newJTextField(20);

pl.add(newJLabel("

pl.add(subject);

add(pljBorderLayout.A/ORTH);

3Panelp2=new3Panel(newGridLayout(2jl));

message=new3TextArea();

p2.add(new3ScrollPane(message));

comm=newJTextArea();

comm.setEditable(false);

comm.setText("

Waiting..."

p2.add(new3ScrollPane(comm));

add(p2jBorderLayout.CFA/7FR);

3Panelp3=new3Panel();

3ButtonsendButton=new3Button("

send"

p3.add(sendButton);

add(p3jBorderLayout.SOUTH);

sendButton.addActionListener(newActionListener()(

^SuppressWarnings("

deprecation"

^Override

publicvoidactionPerformed(ActionEvente)(

sendMail(server.getText().trim(),from.getText().trim(),to.getText().trim(),message.getText(),subject.getText(),userName.getText(),userPass.getText());

});

setVisible(true);

^SuDDressWarninRs("

restriction"

privatevoidsendMa

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 其它课程

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1