邮件发送接收课程设计报告Word文档下载推荐.docx

上传人:b****5 文档编号:20845017 上传时间:2023-01-26 格式:DOCX 页数:9 大小:96.01KB
下载 相关 举报
邮件发送接收课程设计报告Word文档下载推荐.docx_第1页
第1页 / 共9页
邮件发送接收课程设计报告Word文档下载推荐.docx_第2页
第2页 / 共9页
邮件发送接收课程设计报告Word文档下载推荐.docx_第3页
第3页 / 共9页
邮件发送接收课程设计报告Word文档下载推荐.docx_第4页
第4页 / 共9页
邮件发送接收课程设计报告Word文档下载推荐.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

邮件发送接收课程设计报告Word文档下载推荐.docx

《邮件发送接收课程设计报告Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《邮件发送接收课程设计报告Word文档下载推荐.docx(9页珍藏版)》请在冰豆网上搜索。

邮件发送接收课程设计报告Word文档下载推荐.docx

(1)邮件发送

程序以命令行方式运行:

smtpsend,其中smtpsend为程序名。

在文件user.txt中,每行记录一个接收邮件的用户的Email地址以及用户的类型代码(用户类型为整数,Email地址和用户类型之间用空格分隔);

在文件info.txt中记录用户类型代码及相应的邮件正文内容(类型代码和正文之间用空格分隔)。

程序运行时首先提示输入发送方的SMTP服务器地址,以及用户名和口令。

与服务器建立连接成功后,依次读取文件user.txt中接收方的Email地址,然后根据用户类型从文件中读取相应的正文内容,以电子邮件形式发送给用户。

(2)邮件接收

popreceive,其中popreceive为程序名。

程序运行时首先提示输入接收方的POP服务器地址,以及用户名和口令。

然后程序访问邮箱,从中读取新邮件的内容,并将发件人地址和邮件正文记录在文件rec_info.txt中。

二、设计思路

邮件接收端思路:

1,创建一个连接到POP3服务程序的套接字,使用户可以连接到邮件的服务器端。

同时用户可以自主的选择具体输入是哪个邮件服务器。

2,使用java中的socket进行网络编程,建立了连接后,用户可以通过使用pop服务器定义的指令来与服务器进行交互。

首先是user:

输入邮件的名称,然后是pass:

输入登录的密码。

成功登录邮箱后,就可以读取自己邮箱的中的邮件了。

Stat:

显示邮箱中所有的收到的邮件,并同时显示出它的大小。

List:

是分别显示每封邮件的大小。

Retr:

显示具体的一封邮件的所有信息。

Delete:

在pop服务器中删除掉所选的邮件,但是后来我发现,它并没有在自己的邮箱中删除,就是说还是可以在自己的邮箱里看到这封邮件。

3,因为要求要将所收到的邮件的内容写入到re_info.txt。

所以我编写了读写程序,对socket中服务器发送过来的每一行的内容进行的筛选,将邮件的发件人和邮件的内容写入到了E盘下的re_info.txt中。

三、分工

●唐琪玲负责邮件发送;

●朱涛负责邮件接收;

四、具体程序和主要代码

packagemail;

importjava.io.BufferedReader;

importjava.io.BufferedWriter;

importjava.io.FileWriter;

importjava.io.IOException;

importjava.io.InputStream;

importjava.io.InputStreamReader;

importjava.io.OutputStream;

importjava.io.PrintWriter;

import.Socket;

publicclasspopreceive{

privatestaticStringPOPServer="

"

;

//pop3服务器地址

privatestaticStrings="

voidsetServer(Stringpopserver){

POPServer=popserver;

}//设置pop服务器的地址

publicstaticvoidmain(String[]args)throwsIOException{

Stringomd=null;

StringLINEFEED="

\r\n"

//回车换行字符

popreceivep=newpopreceive();

BufferedReaderstdin;

stdin=newBufferedReader(newInputStreamReader(System.in));

//创建一个BufferedReader对象来读取用户输入。

System.out.println("

输入pop3服务器地址"

);

omd=stdin.readLine();

p.setServer(omd);

//上面就是根据输入的不同确定不同的服务器

//用户代理和服务器建立连接

intPOP3Port=110;

Socketsocket=null;

//服务器端套接字

try{

//创建一个连接到POP3服务程序的套接字。

socket=newSocket(POPServer,POP3Port);

System.out.println("

成功建立连接"

//创建一个BufferedReader对象,以便从套接字读取输出。

InputStreamis=socket.getInputStream();

BufferedReadersockin;

sockin=newBufferedReader(newInputStreamReader(is));

//输入流

//创建一个PrintWriter对象,以便向套接字写入内容。

OutputStreamos=socket.getOutputStream();

PrintWritersockout;

sockout=newPrintWriter(os,true);

//trueforauto-flush,自动刷新,输出流

//显示POP3握手信息。

//一旦连接,服务器就会向客户端发送信息?

S:

+sockin.readLine());

随后输入用户名和密码及相应的命令"

+LINEFEED);

while(true){

System.out.print("

C:

//读取用户输入。

omd=stdin.readLine();

//将命令发送到POP3服务程序。

sockout.println(omd);

//读取POP3服务程序的回应消息。

StringreplyLine=sockin.readLine();

System.out.println("

+replyLine);

//如果输入了RETR命令并且返回了成功的回应码,持续从套接字读取输出,

//直到遇到<

CRLF>

.<

这时从套接字读出的输出就是邮件的内容。

if(omd.toLowerCase().startsWith("

list"

&

&

replyLine.charAt(0)=='

+'

){

do{

replyLine=sockin.readLine();

System.out.println("

if(replyLine!

=null&

replyLine.length()>

0){

if(replyLine.charAt(0)=='

.'

break;

}

}

}while(true);

}

retr"

//toLowerCase(),返回一个字符串,把字符串中的字符转换成小写字母

//写程序,将邮件中的内容写入到re.info.txt中。

if(replyLine.startsWith("

From:

)||(replyLine.contains("

_"

)&

replyLine.contains("

is"

))){

s=replyLine;

System.out.println("

写入成功"

FileWriterfr=newFileWriter("

E:

\\rec_info.txt"

true);

BufferedWriterbf=newBufferedWriter(fr);

bf.newLine();

bf.write(s);

bf.flush();

fr.close();

}

0)

//如果用户输入了QUIT命令,退出邮件传输过程。

if(omd.toLowerCase().startsWith("

quit"

)){

退出系统"

break;

}

}

}catch(IOExceptione){

System.out.println(e.toString());

}finally{

try{

if(socket!

=null)

socket.close();

}catch(IOExceptione){

}

}

}

五、调试与最终运行结果

分别接收两个邮箱的收件内容,以及它们的发送者。

并将其写入到rec_info.txt中

邮箱:

net_user01@

这个是执行的全部过程,包括从与服务器的连接,和登录的输入用户名和密码,和服务器返回来的内容This_is_about_Information_System

这是写文件,re_info.txt。

将邮箱:

net_user01@收到的邮件的内容写到这个txt中。

这个是运行后的结果。

net_user02@

上面的截图是打开第一封邮件执行的指令是retr1

上面的截图是打开第二封邮件执行的指令是retr2,此截图和上面的截图是同一个窗口,为了显示方便才分成了2个截图。

这是写程序。

re_info.txt。

net_user02@收到的邮件的内容写到这个txt中。

六、个人总结

这次的课程设计,我和在假期中选择了邮件收发,一方面因为我们对这个问题比较感兴趣,还有就是在这个课题上老师给的参考资料也多,所以我们就做了这个邮件收发这个题目。

在上学期里我们刚好学了java这个课程,了解了socket的基本用法,理解邮件收发这个问题上并没又出现很多的困难。

我做的是邮件的接收这方面的,老师给了一个参考的代码,当我把代码放到eclipse中执行时,发现了很多的问题,包括word中的代码转到eclipse中出现的问题,还有一个很重要的问题就是,在与服务器连接上了以后,执行retr指令的时候,pop服务器并没有发送邮件中的内容,就是说看不到邮件中的内容,后来就一直都卡在这里,有好多天找不到原因,后来才发现是代码中缺少了list指令,输入retr后,执行的是list指令,原因在于list指令要先于retr编写,后来又加上了retr中的代码,最终成功了,可以看到接收邮件的内容。

在课程设计中第二个困难点在如何将邮件接收到的内容写入re_info.txt中。

由于java功底的薄弱,该开始我并没有理解这个读写程序怎么实现,后来通过网络上的视频教程,我才明白了文件流的相关问题。

最终我遍历了服务器发送过来的每一行的内容,根据筛选条件,成功将其写入了re_info.txt中。

整个过程从查找资料、可行性研究、总体设计、开发到完成优化,我认真完成自己的各项任务,从理论到实践都学到了很多东西,感想和认识也比较深刻。

在这次课程设计中,团队的分工和合作也很重要,虽然我们是两个人,但是我们也进行了详细的分工。

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

当前位置:首页 > 小学教育 > 小学作文

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

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