package test;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Properties;
import javax.mail.Folder;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Store;
import javax.mail.URLName;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import com.sun.mail.pop3.POP3Folder;
/**
* 有一封邮件就需要建立一个ReciveMail对象
*/
public class ReciveOneMail {
private MimeMessage mimeMessage = null;
private String dateformat = "yyyy-MM-dd HH:mm"; // 默认的日前显示格式
public ReciveOneMail(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;
}
/**
* 获得邮件主题
*/
public String getSubject() throws MessagingException {
String subject = "";
try {
subject = mimeMessage.getSubject();
String header = ((MimeMessage) mimeMessage).getHeader("SUBJECT")[0];
if ((header.toLowerCase().indexOf("=?")) > 0) {
subject = new String((subject.getBytes("ISO-8859-1")), "gb2312");
}
if (subject == null)
subject = "";
} catch (Exception exce) {
}
return subject;
}
/**
* 获得邮件发送日期
*/
public String getSentDate() throws Exception {
Date sentdate = mimeMessage.getSentDate();
SimpleDateFormat format = new SimpleDateFormat(dateformat);
return format.format(sentdate);
}
/**
* 获得此邮件的Message-ID
*/
public String getMessageId() throws MessagingException {
return mimeMessage.getMessageID();
}
/**
* 【设置日期显示格式】
*/
public void setDateFormat(String format) throws Exception {
this.dateformat = format;
}
/**
* PraseMimeMessage类测试
*/
public static void main(String args[]) throws Exception {
Properties props = System.getProperties();
props.put("mail.smtp.host", "mail.socix.com");
props.put("mail.smtp.auth", "true");
URLName url = new URLName("pop3", "mail.socix.com", 110, null,
"xcf@socix.com", "111111");
System.out.println("log on!");
Session session = Session.getInstance(System.getProperties(), null);
Store store = session.getStore(url);
POP3Folder inbox = null;
try {
store.connect();
System.out.println("store connected!");
inbox = (POP3Folder) store.getFolder("INBOX");
inbox.open(Folder.READ_ONLY);
Message[] message = inbox.getMessages();
for (int i = 0; i < message.length; i++) {
System.out.println("Message " + i + " UID: "
+ inbox.getUID(message[i]));
}
System.out.println("fetched!");
for (int i = 0; i < message.length; i++) {
ReciveOneMail pmm = new ReciveOneMail((MimeMessage) message[i]);
System.out.println("第" + (i + 1) + "封");
System.out.println("======================");
System.out.println("Message " + (i + 1) + " 主题: "
+ pmm.getSubject()); // 获取主题
System.out.println("Message " + (i + 1) + " 日期: "
+ pmm.getSentDate()); // 获取邮件发送日期
System.out.println("Message " + (i + 1) + " 发件人: "
+ pmm.getFrom()); // 获取发件人和地址
System.out.println("Message " + (i + 1) + " UID: "
+ inbox.getUID(message[i]));
}
} finally {
try {
inbox.close(false);
} catch (Exception e) {
}
try {
store.close();
} catch (Exception e) {
}
}
}
}
咋取邮件信息?
最新推荐文章于 2021-10-11 17:46:08 发布