用java开发邮件接收程序需要用到javamail包,资源地址:http://java.sun.com/products/javamail/,最新版是 JavaMail 1.4.3 ,下载地址是:http://cds.sun.com/is-bin/INTERSHOP.enfinity/WFS/CDS-CDS_Developer-Site/en_US/-/USD/VerifyItem-Start/javamail-1.4.3.zip?BundledLineItemUUID=gqFIBe.oRjUAAAEl1r4xay_N&OrderID=t1BIBe.o3q4AAAElxL4xay_N&ProductID=J3tIBe.pJGsAAAElR5Jh6wjK&FileName=/javamail-1.4.3.zip。
里面有两个关键的jar包,分别是mail.jar和activation.jar,一定要放在java目录/jre/lib/ext目录里面,否则会在编译时报错,错误信息如下:
ReceiveMail.java:10: package javax.mail does not exist
import javax.mail.*;
^
ReceiveMail.java:11: package javax.mail.internet does not exist
import javax.mail.internet.*;
下面贴出来一个例子代码,供参考(当然你也可以网上查到)
// java 收邮件程序
import java.io.*;
import java.text.*;
import java.util.*;
import javax.mail.*;
import javax.mail.internet.*;
/**
* 有一封邮件就需要建立一个ReciveMail对象
*/
public class ReceiveMailDemo {
private MimeMessage mimeMessage = null;
private String saveAttachPath = ""; //附件下载后的存放目录
private StringBuffer bodytext = new StringBuffer();//存放邮件内容
private String dateformat = "yy-MM-dd HH:mm"; //默认的日前显示格式
public ReceiveMailDemo(MimeMessage mimeMessage) {
this.mimeMessage = mimeMessage;
}
public void setMimeMessage(MimeMessage mimeMessage) {
this.mimeMessage = mimeMessage;
}
/**
* 获得发件人的地址和姓名
*/
public String getFrom() throws Exception {
InternetAddress address[] = (InternetAddress[]) mimeMessage.getFrom();
String from = address[0].getAddress();
if (from == null)
from = "";
String personal = address[0].getPersonal();
if (personal == null)
personal = "";
String fromaddr = personal + "<" + from + ">";
return fromaddr;
}
/**
* 获得邮件的收件人,抄送,和密送的地址和姓名,根据所传递的参数的不同 "to"----收件人 "cc"---抄送人地址 "bcc"---密送人地址
*/
public String getMailAddress(String type) throws Exception {
String mailaddr = "";
String addtype = type.toUpperCase();
InternetAddress[] address = null;
if (addtype.equals("TO") || addtype.equals("CC")|| addtype.equals("BCC")) {
if (addtype.equals("TO")) {
address = (InternetAddress[]) mimeMessage.getRecipients(Message.RecipientType.TO);
} else if (addtype.equals("CC")) {
address = (InternetAddress[]) mimeMessage.getRecipients(Message.RecipientType.CC);
} else {
address = (InternetAddress[]) mimeMessage.getRecipients(Message.RecipientType.BCC);
}
if (address != null) {
for (int i = 0; i < address.length; i++) {
String email = address[i].getAddress();