117301田志阳软工1512网编8Word格式文档下载.docx
- 文档编号:22385029
- 上传时间:2023-02-03
- 格式:DOCX
- 页数:12
- 大小:295.59KB
117301田志阳软工1512网编8Word格式文档下载.docx
《117301田志阳软工1512网编8Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《117301田志阳软工1512网编8Word格式文档下载.docx(12页珍藏版)》请在冰豆网上搜索。
JavaMailAPI预置了一些最常用的邮件传输协议的实现方法,并且提供了相对容易的编程方法实现调用,利用它可以比较轻松地实现E-mail的发送和接收。
邮件服务器可以分为发送邮件服务器和接收邮件服务器。
发送邮件服务器常用的协议是SMTP,接收邮件服务器常使用POP3协议和IMAP协议。
JavaMailAPI支持各种电子邮件通信协议,如IMAP、POP3和SMTP,为Java应用程序提供了处理电子邮件的公共接口。
其中,常用的类有:
Session类、Address类、Transport类、Store类以及Folder类等。
三、预习与准备
1、预习如何应用JavaMailAPI创建邮件服务器的客户机程序相关知识点,主要包括:
JavaMailAPI常用类,如何搭建、配置JavaMail应用程序开发环境,通过JavaMailAPI创建电子邮件客户机程序的基本步骤和技巧,包括进行身份认证、创建和解析带附件的邮件,以及如何创建和读取复杂电子邮件等知识点。
2、提前准备好实验环境、平台及软件工具:
PC机一台,Windows7或XP系统,JDK1.7与Eclipse3.7或以上版本、javax.mail.jar、activation.jar以及winmail,编写好程序源代码。
三、实验内容
(1)配置JavaMail程序开发环境
1)获得JavaMailAPI的类库
安装JavaMailAPI很简单,但在安装前要确保机器上已经安装有标准版的JDK,并且已配置好。
①、安装JavaMailAPI:
下载并将其解压到JDK安装子目录下。
注意要将mail.jar文件添加到CLASSPATH中。
②、JavaBeansActivationFramework的安装:
注意要将activation.jar文件添加到CLASSPATH中。
2)测试JavaMailAPI的安装
安装JavaMailAPI之后,可以用以下程序示例代码测试安装成功与否。
编译、运行程序示例,将显示每个协议的名称、协议类型,以及供应商的名字。
示例代码如下:
ProviderList.java
//Chapter10,packagelab8
importjavax.mail.*;
importjavax.mail.internet.*;
publicclassProviderList{
publicstaticvoidmain(Stringargs[])throwsException{
SessionmySession=Session.getDefaultInstance(System.getProperties(),null);
Provider[]providerList=mySession.getProviders();
for(inti=0;
i<
providerList.length;
i++){
System.out.println("
Protocol:
"
+providerList[i].getProtocol());
if(providerList[i].getType()==Provider.Type.STORE)
Providertype:
STORE"
);
else
System.out.println("
TRANSPORT"
Vendor:
+providerList[i].getVendor());
}
ProviderList编译、运行结果如下:
(2)安装配置邮件服务器
为了便于运行测试JavaMailAPI应用程序,应配置安装好可以访问的邮件服务器。
在此选择使用WinmailServer。
①、下载winmail.zip,并安装;
②、Winmail邮件系统的设置:
快速向导设置;
服务状态检查;
SMTP基本参数设置。
(3)发送E-mail程序设计
编写一个能够向服务器中注册的邮箱发送简单邮件消息的程序。
//Chapter10,SendMail
packagejava8.text8.text;
importjava.util.*;
publicclassSendMail{
publicstaticvoidmain(Stringargs[])throwsException{
Sessionsession;
Storestore;
Stringcc=null;
//抄送人
Stringbcc=null;
//暗送
try{
StringsendHost="
172.19.23.54"
;
//发送邮件服务器
StringreceiveHost="
//接收邮件服务器
StringsendProtocol="
smtp"
//发送邮件协议
StringreceiveProtocol="
imap"
//接收邮件协议
Stringusername="
123456"
Stringpassword="
789654123"
StringfromAddr="
123456@"
//发送者地址
StringtoAddr="
//接收者地址
Stringsubject="
Hello"
Stringcontent="
WelcometoJavaMail"
Propertiesprops=newProperties();
props.put("
mail.transport.protocol"
sendProtocol);
props.put("
mail.store.protocol"
receiveProtocol);
mail.smtp.class"
"
com.sun.mail.smtp.SMTPTransport"
mail.imap.class"
com.sun.mail.imap.IMAPStore"
mail.smtp.host"
sendHost);
//设置发送邮件服务器
session=Session.getDefaultInstance(props,null);
//获得邮件会话对象
session.setDebug(true);
//输出跟踪日志
store=session.getStore(receiveProtocol);
//创建Store对象
store.connect(receiveHost,username,password);
//连接到收邮件服务器
Messagemsg=newMimeMessage(session);
//创建一个邮件对象
msg.setFrom(newInternetAddress(fromAddr));
//设置发言人
if(toAddr!
=null){//设置收信人
msg.setRecipients(Message.RecipientType.TO,InternetAddress.parse(toAddr));
if(cc!
=null){//设置抄送人
msg.setRecipients(Message.RecipientType.CC,InternetAddress.parse(cc));
if(bcc!
=null){//设置暗送人
msg.setRecipients(Message.RecipientType.BCC,InternetAddress.parse(bcc));
msg.setSubject(subject);
//设置邮件主题
msg.setText(content);
//设置邮件内容
msg.setSentDate(newDate());
//发送日期
Transport.send(msg);
//发送邮件
emailsend!
catch(Exceptionex){
ex.printStackTrace();
}
(4)接收E-mail程序设计
编写一个能够接收POP3邮件服务器中简单邮件消息的程序。
//Chapter10,POP3Client
importjava.io.*;
publicclassPOP3Client{
publicstaticvoidmain(String[]args){
Stringprovider="
pop3"
/*连接到POP3服务器*/
Sessionsession=Session.getDefaultInstance(props,null);
Storestore=session.getStore(provider);
/*打开邮件夹*/
Folderfolder=store.getFolder("
inbox"
if(folder==null){
NoInbox"
System.exit
(1);
folder.open(Folder.READ_ONLY);
Youhave"
+folder.getMessageCount()+"
messagesinInbox."
+folder.getUnreadMessageCount()+"
unreadmessagesinInbox."
/*获取服务器的邮件消息*/
Message[]messages=folder.getMessages();
for(inti=0;
i<
messages.length;
----------Message"
+(i+1)+"
----------"
messages[i].writeTo(System.out);
/*关闭连接*/
folder.close(false);
store.close();
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 117301 田志阳软工 1512