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((Part) mpart);
没有合适的资源?快使用搜索试试~ 我知道了~
android邮件收发系统
共126个文件
class:42个
png:28个
jar:14个
4星 · 超过85%的资源 需积分: 22 108 下载量 12 浏览量
2012-04-23
09:31:30
上传
评论 5
收藏 1.78MB ZIP 举报
温馨提示
android邮件收发系统,可改装成swing,jsp都行。各知识点都有源码
资源推荐
资源详情
资源评论
收起资源包目录
android邮件收发系统 (126个子文件)
resources.ap_ 37KB
resources.ap_ 35KB
Email.apk 43KB
3ToolTest.apk 42KB
2surfacetest.apk 40KB
20120213Tool.apk 16KB
proguard.cfg 1KB
proguard.cfg 1KB
ReciveMail.class 11KB
SendEmail.class 5KB
SecondTest.class 3KB
ToolTest.class 3KB
mainview.class 2KB
mainview.class 2KB
SecondTest.class 2KB
ToolTest.class 2KB
R$style.class 1KB
R$style.class 1KB
R$style.class 1KB
SecondTest$1.class 1KB
mainview$1.class 999B
mainview$1.class 999B
ToolTest$1.class 986B
R$id.class 889B
SendEmail$1.class 673B
playerview.class 636B
playerview.class 636B
R$id.class 629B
R$id.class 629B
R$drawable.class 606B
R$drawable.class 606B
R$drawable.class 597B
R$id.class 590B
R.class 587B
R.class 587B
R.class 563B
R.class 517B
R$string.class 464B
R$string.class 464B
R$string.class 455B
R$layout.class 451B
R$string.class 421B
R$layout.class 418B
R$layout.class 397B
R$layout.class 397B
R$drawable.class 394B
R$attr.class 343B
R$attr.class 343B
R$attr.class 334B
R$attr.class 334B
.classpath 666B
.classpath 666B
.classpath 288B
.classpath 288B
classes.dex 8KB
classes.dex 6KB
mail.jar 348KB
mail.jar 348KB
mailapi.jar 182KB
mailapi.jar 182KB
imap.jar 133KB
imap.jar 133KB
activation.jar 55KB
activation.jar 55KB
smtp.jar 23KB
smtp.jar 23KB
pop3.jar 21KB
pop3.jar 21KB
dsn.jar 10KB
dsn.jar 10KB
ReciveMail.java 15KB
SendEmail.java 4KB
R.java 4KB
R.java 3KB
SecondTest.java 3KB
ToolTest.java 2KB
mainview.java 2KB
playerview.java 481B
radiobtn_bg_g.png 17KB
radiobtn_bg_g.png 17KB
radiobtn_bg_g.png 17KB
radiobtn_bg_g.png 17KB
icon.png 4KB
icon.png 4KB
icon.png 4KB
icon.png 4KB
login_keep_menber.png 3KB
login_keep_menber.png 3KB
login_unkeep_menber.png 3KB
login_unkeep_menber.png 3KB
icon.png 3KB
icon.png 3KB
radiobtn_bg.png 2KB
radiobtn_bg.png 2KB
radiobtn_bg.png 2KB
radiobtn_bg.png 2KB
icon.png 2KB
icon.png 2KB
icon.png 2KB
icon.png 2KB
共 126 条
- 1
- 2
向晨宇
- 粉丝: 294
- 资源: 30
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
- 3
- 4
- 5
- 6
前往页