JavaMail
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
package com.mail.tool;
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.text.DateFormat;
import java.util.Date;
import java.util.Properties;
import java.util.StringTokenizer;
import javax.activation.DataHandler;
import javax.activation.DataSource;
import javax.activation.FileDataSource;
import javax.mail.BodyPart;
import javax.mail.Flags;
import javax.mail.Folder;
import javax.mail.Message;
import javax.mail.Multipart;
import javax.mail.Part;
import javax.mail.Session;
import javax.mail.Store;
import javax.mail.Transport;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
import com.mail.bean.MailBean;
import erBean;
import com.mail.dao.ReceiveDao;
import com.sun.xml.internal.messaging.saaj.packaging.mime.internet.MimeUtility;
public class MailManager {
public int getUnreadCount(UserBean user){//读取未读邮件的个数,POP3没有此功能int count=0;
try{
Properties props=new Properties();//创建一个空的配置
Session mailSession = Session.getInstance(props);//获取一个Session的实例
mailSession.setDebug(true);
Store store = mailSession.getStore("pop3");//设置接收邮件的服务器类型
store.connect(user.getPop(), user.getEmail(), user.getEmailPSW());//连接服务器Folder folder = store.getFolder("INBOX");//获取收件箱中的邮件
folder.open(Folder.READ_ONLY);
count=folder.getUnreadMessageCount();//获取未读邮件的个数
folder.close(true);
store.close();
}
catch (Exception e) {
e.printStackTrace();
}
return count;
}
//接收邮件
public boolean receiveMail(UserBean user){
try{
Properties props=new Properties();//创建一个空的配置
Session mailSession = Session.getInstance(props);//获取一个Session实例mailSession.setDebug(true);
Store store = mailSession.getStore("pop3");//设置接收服务器类型
store.connect(user.getPop(), user.getEmail(), user.getEmailPSW());//连接服务器Folder folder = store.getFolder("INBOX");//获取收件箱中的邮件
folder.open(Folder.READ_WRITE);//打开Folder
Message message[] = folder.getMessages();//获取所有邮件
ReceiveDao receiveDao = new ReceiveDao();//建立保存邮件的数据库
for (int i = 0; i < message.length; i++){
MailBean mail=new MailBean();
mail.setFrom(((InternetAddress)message[i].getFrom()[0]).getAddress());//读取发件人mail.setTo(user.getEmail());//读取收件人
mail.setTheme(message[i].getSubject());//读取邮件主题
DateFormat format=DateFormat.getDateInstance(DateFormat.SHORT);//获取邮件发送日期
mail.setDate(format.format(message[i].getSentDate()));
/////////////////////////////////////////////////
Object content = message[i].getContent();//获取邮件所有内容
String textPlain=contentParser(message[i],"text/plain");//解析邮件中的文本正文String textHtml=contentParser(message[i],"text/html");//解析邮件中的html正文