Posted on 2008-10-25 15:20
梦与桥 阅读(427)
评论(2) 编辑 收藏 所属分类:
jsp程序设计
1、构建JavaMail开发环境:
主要是引入两个包:mail.jar与activation.jar
可以到下面的网站下载最新的JavaMailAPI:
http://java.sun.com/products/javamail/downloads/index.html
可以到下面的网站下载最新的JAF:
http://java.sun.com/javase/technologies/desktop/javabeans/jaf/
解压下载的zip包,在其中找到mail.jar与activation.jar,将它们拷贝到WEB-INF/lib目录下
2、构建JavaMail发邮件程序的步骤:创建JavaMail会话--->编写JavaMail消息--->发送JavaMail消息
1)创建JavaMail会话
Properties props=new Properties();
//指定SMTP服务器
props.put("mail.smtp.host",host);
//指定是否需要smtp验证
props.put("mail.smtp.auth","true");
Session mailSession=Session.getDefaultInstance(props);
//在控制台显示debug信息,用以调试,发布前要设为false,默认为false
mailSession.setDebug(true);
2)编写JavaMail消息
//构造新的消息对象
Message message=new MimeMessage(mailSession);
//发件人
message.setFrom(new InternetAddress(From));
//收件人
message.addRecipient(Message.RecipientType.TO,new InternetAddress(to));
//抄送人
message.addRecipient(Message.RecipientType.CC,new InternetAddress("wangzhaoqingk@126.com"));
//邮件主题
message.setSubject(Subject) ;
//邮件内容
message.setText(messageText);
//发信日期
message.setSentDate(new Date());
//保存邮件设置信息
message.saveChanges();
3)发送JavaMail消息
//构造传送对象
Transport transport=mailSession.getTransport("smtp");
transport.connect(host,user,password);
transport.sendMessage(message,message.getAllRecipients());
transport.close();
3、构建JavaMail发邮件程序的步骤:登录Store--->列出Inbox中的邮件--->读取消息
1)登录Store
Properties props=new Properties();
//指定pop3邮件服务器
props.put("mail.pop3.host",host);
//创建邮件会话
Session mailsession=Session.getDefaultInstance(props);
//创建Store对象
Store store=mailsession.getStore("pop3");
//登录到Store
store.connect(host,user,password);
2)列出Inbox中的邮件
//获得INBOX文件夹
Folder inbox=store.getDefaultFolder().getFolder("INBOX");
//以读写模式打开INBOX文件夹
inbox.open(Folder.READ_WRITE);
//从INBOX文件夹取得所有的消息对象
Message[] message=inbox.getMessages();
3)读取消息
//循环读取消息
for(int i=0;i<message.length;i++){
message[i].setFlag(Flags.Flag.DELETED,true);
out.println("邮件主题:"+message[i].getSubject()+"<br>");
out.println("邮件发送者:"+message[i].getFrom()+"<br>");
out.println("发送时间:"+message[i].getSentDate()+"<br>");
out.println("内容:"+message[i].getContent()+"<br>");}
inbox.colse(true);
store.close();
4、构建Multipart消息的步骤:创建Multipart消息--->创建Bodypart--->将Bodypart添加到Multipart消息--->将消息设置为Multipart对象
1)创建Multipart消息
2)创建Bodypart
3)将Bodypart添加到Multipart消息
4)将消息设置为Multipart对象
5、JavaMail组件中为什么Message、Folder和Store都被定义为抽象类?我们如何取得它们相应的实例对象。
答:JavaMail API定义了一个用来管理邮件的通用接口,并且JavaMail允许程序员通过API里的接口来撰写自己的应用程序,执行时再请求使用某种类型的处理。这样程序员采用JavaMail编写邮件消息收发程序具有适应于任何邮件服务器的通用性和跨平台的优点。Message类我们一般使用其相应的子类MimeMessage创建实例,Store类实例用Session的getStore()方法取得,Folder类实例用Store的getFolder()方法取得。
注:写本随笔之前,我调试了三个例子(6个文件),篇幅较长,不再往上贴了,谁若需要,可以给我留言,注上邮箱,我会给你寄过去。