深入探讨JavaMail API的使用
时间:2010-12-18 yesky 郑伟
在我以前发表的文章《使用JavaMail和Jsp结合编写简易电子邮件发送系统》 ,介绍了JavaMail与JSP结合使用的方法。其实,JavaMail API是一个相当大的 系统,单单那么一片小文是不能介绍完JavaMail的,因此我想以本文与大家深入 的探讨一下JavaMail的使用。
问题一、我如何发送一封简单的信件?
回答:我将在下面的例子中详细的讲解如何发送简单信件
import java.util.*;
import java.io.*;
import javax.mail.*;
import javax.mail.internet.*;
import javax.activation.*;
public class SendSimpleMail {
file://msgText是信件的正文,共有两行
static String msgText = "Dear Mr.FangZhou\nI’m a reader of your net!"
file://从命令行中读入三个参数,分别为smtpHost,from,to
public static void main(String args[])
throws Exception{
if (args.length != 3) {
System.out.println("usage: java SendSimpleMail ");
return;
}
String smtpHost=args[0];//SMTP服务器名
String from=args[1];//发信人地址
String to =args[2];//收信人地址
// 创建properties对象
Properties props = new Properties();
file://创建邮件服务器
props.put("mail.smtp.host", smtpHost);
file://取得默认的Session
Session session = Session.getDefaultInstance(props, null);
// 创建一条信息,并定义发信人地址和收信人地址
MimeMessage message = new MimeMessage(session);
message.setFrom(new InternetAddress(from));
InternetAddress[] address = {new InternetAddress(to)};
message.setRecipients(Message.RecipientType.TO, address);
message.setSubject("Hello,FangZhou");//设定主题
message.setSentDate(new Date());//设定发送时间
message.setText(msgText);//把前面定义的msgText中的文字设定为邮件正文的 内容
file://发送邮件
Transport.send(message);
}
}
问题二、如果我想在邮件中加上附件怎么办?
这也是一个相当好的问题,要加入附件的话就要使用MimeBodyPart来创建邮 件,只需把上面的程序稍加修改就可以了,为了简单起见,我在这里只是使用了 一条字符串作为附件内容来解释如何添加附件。
file://msgText是信件的正文,共有两行
static String msgText = "Dear Mr.FangZhou\nI’m a reader of your net!"
file://msgAttachment是一段字符串作为附件
static String msgAttachment = "This is an attachment string!"
. . . . . . . . .
MimeBodyPart mbp1 = new MimeBodyPart();
mbp1.setText(msgText); file://把前面定义的msgText中的文字设定为邮件正 文的内容
file://创建附件部分
MimeBodyPart mbp2 = new MimeBodyPart();
file://使用setText(text, charset)来加入附件
mbp2.setText(msgAttachment, "gb2312");
file://创建Multipart
Multipart mp = new MimeMultipart();
mp.addBodyPart(mbp1);
mp.addBodyPart(mbp2);
// 添加 Multipart到Message中
message.setContent(mp);
file://发送邮件
Transport.send(message);
}
深入探讨JavaMail API的使用(2)
时间:2010-12-18 yesky 郑伟
问题三、我怎样从邮件服务器中获取邮件列表
回答:其实实现这个问题的方法很简单
1. JavaMail客户端通过创建一个默认的会话(Session)对象来开始一个邮 件处理任务
Session session = Session.getDefaultInstance(props, authenticator);
2. 客户端使用Session对象的getStore方法来连接到默认到Store提供者。 GetStore方法返回一个 Store 对象子类, |