package com.xcy.daoimpl;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Properties;
import javax.mail.BodyPart;
import javax.mail.Flags;
import javax.mail.Folder;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Multipart;
import javax.mail.Part;
import javax.mail.Session;
import javax.mail.Store;
import javax.mail.URLName;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeUtility;
/**
* 有一封邮件就需要建立一个ReciveMail对象
*/
public class ReciveMail {
private MimeMessage mimeMessage = null;
private String saveAttachPath = ""; //附件下载后的存放目录
private StringBuffer bodytext = new StringBuffer();//存放邮件文本内容
private StringBuffer bodyhtml = new StringBuffer();//存放邮件内容
private String dateformat = "yy-MM-dd HH:mm"; //默认的日前显示格式
public ReciveMail(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();
if (email == null)
email = "";
else {
email = MimeUtility.decodeText(email);
}
String personal = address[i].getPersonal();
if (personal == null)
personal = "";
else {
personal = MimeUtility.decodeText(personal);
}
String compositeto = personal + "<" + email + ">";
mailaddr += "," + compositeto;
}
mailaddr = mailaddr.substring(1);
}
} else {
throw new Exception("Error emailaddr type!");
}
return mailaddr;
}
/**
* 获得邮件主题
*/
public String getSubject() throws MessagingException {
String subject = "";
try {
subject = MimeUtility.decodeText(mimeMessage.getSubject());
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);
}
/**
* 获得邮件正文内容
*/
public String getBodyText() {
return bodytext.toString();
}
/**
* 获得邮件正文Html内容
*/
public String getBodyHtml() {
return bodyhtml.toString();
}
/**
* 解析邮件,把得到的邮件内容保存到一个StringBuffer对象中,解析邮件 主要是根据MimeType类型的不同执行不同的操作,一步一步的解析
*/
public void getMailContent(Part part) throws Exception {
String contenttype = part.getContentType();
int nameindex = contenttype.indexOf("name");
boolean conname = false;
if (nameindex != -1)
conname = true;
// System.out.println("CONTENTTYPE: " + contenttype);
if (part.isMimeType("text/plain") && !conname) {//是纯文本
bodytext.append((String) part.getContent());
} else if (part.isMimeType("text/html") && !conname) { //是网页
bodyhtml.append((String) part.getContent());
} else if (part.isMimeType("multipart/*")) { //文本和附件
Multipart multipart = (Multipart) part.getContent();
int counts = multipart.getCount();
for (int i = 0; i < counts; i++) {
getMailContent(multipart.getBodyPart(i));
}
} else if (part.isMimeType("message/rfc822")) {//是附件
getMailContent((Part) part.getContent());
} else {
}
}
/**
* 判断此邮件是否需要回执,如果需要回执返回"true",否则返回"false"
*/
public boolean getReplySign() throws MessagingException {
boolean replysign = false;
String needreply[] = mimeMessage
.getHeader("Disposition-Notification-To");
if (needreply != null) {
replysign = true;
}
return replysign;
}
/**
* 获得此邮件的Message-ID
*/
public String getMessageId() throws MessagingException {
return mimeMessage.getMessageID();
}
/**
* 【判断此邮件是否已读,如果未读返回返回false,反之返回true】
*/
public boolean isNew() throws MessagingException {
boolean isnew = false;
Flags flags = ((Message) mimeMessage).getFlags();
Flags.Flag[] flag = flags.getSystemFlags();
System.out.println("flags's length: " + flag.length);
for (int i = 0; i < flag.length; i++) {
if (flag[i] == Flags.Flag.SEEN) {
isnew = true;
System.out.println("seen Message .");
break;
}
}
return isnew;
}
/**
* 判断此邮件是否包含附件
*/
public boolean isContainAttach(Part part) throws Exception {
boolean attachflag = false;
//String contentType = part.getContentType();
if (part.isMimeType("multipart/*")) {
Multipart mp = (Multipart) part.getContent();
for (int i = 0; i < mp.getCount(); i++) {
BodyPart mpart = mp.getBodyPart(i);
String disposition = mpart.getDisposition();
if ((disposition != null)
&& ((disposition.equals(Part.ATTACHMENT)) || (disposition
.equals(Part.INLINE))))
attachflag = true;
else if (mpart.isMimeType("multipart/*")) {
attachflag = isContainAttach((Par
没有合适的资源?快使用搜索试试~ 我知道了~
Android邮件收发-毕业设计
共334个文件
class:124个
png:80个
xml:50个
4星 · 超过85%的资源 需积分: 10 22 下载量 201 浏览量
2013-03-28
21:40:37
上传
评论 1
收藏 12.17MB ZIP 举报
温馨提示
android邮件收发的毕业设计。请把账号密码改成你自己的就OK。做了缓存,分页什么的 都有。
资源推荐
资源详情
资源评论
收起资源包目录
Android邮件收发-毕业设计 (334个子文件)
resources.ap_ 925KB
resources.ap_ 925KB
MyEmailTest10.apk 1.16MB
MyEmailTest10.apk 1.16MB
MyEmailTest7.apk 1.16MB
MyEmailTest7.apk 1.16MB
MyEmailTest6.apk 1.16MB
MyEmailTest6.apk 1.16MB
proguard.cfg 1KB
proguard.cfg 1KB
ReciveMail.class 9KB
ReciveMail.class 9KB
FileUtil.class 8KB
FileUtil.class 8KB
RecActivity.class 8KB
RecActivity.class 8KB
DetailActivity.class 7KB
DetailActivity.class 7KB
SendDAOImpl.class 6KB
SendDAOImpl.class 6KB
MainTabActivity.class 5KB
MainTabActivity.class 5KB
LoginActivity.class 4KB
LoginActivity.class 4KB
DetailActivity$1.class 4KB
DetailActivity$1.class 4KB
HuifuActivity.class 4KB
HuifuActivity.class 4KB
ZhuanfaActivity.class 4KB
ZhuanfaActivity.class 4KB
SendActivity.class 3KB
SendActivity.class 3KB
CusActivity.class 3KB
CusActivity.class 3KB
DetailActivity$btnDownAttachClick.class 3KB
DetailActivity$btnDownAttachClick.class 3KB
ThemeActivity.class 3KB
ThemeActivity.class 3KB
FileUtils.class 3KB
FileUtils.class 3KB
LoginActivity$1.class 3KB
LoginActivity$1.class 3KB
R$id.class 3KB
R$id.class 3KB
RecActivity$MyAdapter.class 2KB
RecActivity$MyAdapter.class 2KB
ZhuanfaActivity$1.class 2KB
ZhuanfaActivity$1.class 2KB
HuifuActivity$1.class 2KB
HuifuActivity$1.class 2KB
SendActivity$1.class 2KB
SendActivity$1.class 2KB
LoginDAOImpl.class 2KB
LoginDAOImpl.class 2KB
RecActivity$5.class 2KB
RecActivity$5.class 2KB
ApplicationManager.class 2KB
ApplicationManager.class 2KB
R$drawable.class 1KB
R$drawable.class 1KB
RecActivity$4.class 1KB
RecActivity$4.class 1KB
SharedPreferencesUtil.class 1KB
SharedPreferencesUtil.class 1KB
ThemeActivity$3.class 1KB
ThemeActivity$1.class 1KB
ThemeActivity$2.class 1KB
ThemeActivity$3.class 1KB
ThemeActivity$1.class 1KB
ThemeActivity$2.class 1KB
RecActivity$6.class 1KB
RecActivity$6.class 1KB
MainTabActivity$1.class 1KB
MainTabActivity$1.class 1KB
DetailActivity$btnZhuanfaClick.class 1KB
DetailActivity$btnZhuanfaClick.class 1KB
DetailActivity$btnHuifuClick.class 1KB
DetailActivity$btnHuifuClick.class 1KB
RecActivity$3.class 1KB
RecActivity$3.class 1KB
MyAdapter.class 1KB
MyAdapter.class 1KB
CusActivity$1.class 1021B
CusActivity$1.class 1021B
ZhuanfaActivity$2.class 1008B
ZhuanfaActivity$2.class 1008B
DetailActivity$btnFanhuiClick.class 997B
DetailActivity$btnFanhuiClick.class 997B
SendDAOImpl$1.class 996B
HuifuActivity$2.class 996B
SendDAOImpl$1.class 996B
HuifuActivity$2.class 996B
LoginActivity$3.class 990B
LoginActivity$3.class 990B
SendActivity$2.class 988B
SendActivity$2.class 988B
RecActivity$2.class 982B
RecActivity$2.class 982B
LoginDAOImpl$1.class 925B
LoginDAOImpl$1.class 925B
共 334 条
- 1
- 2
- 3
- 4
资源评论
- tutunang2013-09-09还好吧···不像毕业设计
- siqisiyongsi2015-05-23主要是来看毕业设计是怎么写的
- kzbpp2014-02-14不能正常运行
向晨宇
- 粉丝: 294
- 资源: 30
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功