javamail实现大全.docx

上传人:b****6 文档编号:7902239 上传时间:2023-01-27 格式:DOCX 页数:33 大小:24.01KB
下载 相关 举报
javamail实现大全.docx_第1页
第1页 / 共33页
javamail实现大全.docx_第2页
第2页 / 共33页
javamail实现大全.docx_第3页
第3页 / 共33页
javamail实现大全.docx_第4页
第4页 / 共33页
javamail实现大全.docx_第5页
第5页 / 共33页
点击查看更多>>
下载资源
资源描述

javamail实现大全.docx

《javamail实现大全.docx》由会员分享,可在线阅读,更多相关《javamail实现大全.docx(33页珍藏版)》请在冰豆网上搜索。

javamail实现大全.docx

javamail实现大全

javamail实现大全

packageorg.mail.core;

importjava.io.*;

importjava.text.*;

importjava.util.*;

importjavax.mail.*;

importjavax.mail.internet.*;

publicclassReceiveMail{

privateMimeMessagemimeMessage=null;

privateStringsaveAttachPath="";//附件下载后的存放目录

privateStringBufferbodytext=newStringBuffer();

//存放邮件内容的StringBuffer对象

privateStringdateformat="yy-MM-ddHH:

mm";//默认的日前显示格式

/**

*构造函数,初始化一个MimeMessage对象

*/

publicReceiveMail(){

}

publicReceiveMail(MimeMessagemimeMessage){

this.mimeMessage=mimeMessage;

System.out.println("createaReceiveMailobject........");

}

publicvoidsetMimeMessage(MimeMessagemimeMessage){

this.mimeMessage=mimeMessage;

}

/**

**获得发件人的地址和姓名

*/

publicStringgetFrom()throwsException{

InternetAddressaddress[]=(InternetAddress[])mimeMessage.getFrom();

Stringfrom=address[0].getAddress();

if(from==null)

from="";

Stringpersonal=address[0].getPersonal();

if(personal==null)

personal="";

Stringfromaddr=personal+"<"+from+">";

returnfromaddr;

}

/**

**获得邮件的收件人,抄送,和密送的地址和姓名,根据所传递的参数的不同*"to"----收件人"cc"---抄送人地址

*"bcc"---密送人地址

*/

publicStringgetMailAddress(Stringtype)throwsException{

Stringmailaddr="";

Stringaddtype=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);

}elseif(addtype.equals("CC")){

address=(InternetAddress[])mimeMessage

.getRecipients(Message.RecipientType.CC);

}else{

address=(InternetAddress[])mimeMessage

.getRecipients(Message.RecipientType.BCC);

}

if(address!

=null){

for(inti=0;i

Stringemail=address[i].getAddress();

if(email==null)

email="";

else{

email=MimeUtility.decodeText(email);

}

Stringpersonal=address[i].getPersonal();

if(personal==null)

personal="";

else{

personal=MimeUtility.decodeText(personal);

}

Stringcompositeto=personal+"<"+email+">";

mailaddr+=","+compositeto;

}

mailaddr=mailaddr.substring

(1);

}

}else{

thrownewException("Erroremailaddrtype!

");

}

returnmailaddr;

}

/**

**获得邮件主题

*/

publicStringgetSubject()throwsMessagingException{

Stringsubject="";

try{

subject=MimeUtility.decodeText(mimeMessage.getSubject());

if(subject==null)

subject="";

}catch(Exceptionexce){

}

returnsubject;

}

/**

**获得邮件发送日期

*/

publicStringgetSentDate()throwsException{

Datesentdate=mimeMessage.getSentDate();

SimpleDateFormatformat=newSimpleDateFormat(dateformat);

returnformat.format(sentdate);

}

/**

**获得邮件正文内容

*/

publicStringgetBodyText(){

returnbodytext.toString();

}

/**

**解析邮件,把得到的邮件内容保存到一个StringBuffer对象中,解析邮件*

*主要是根据MimeType类型的不同执行不同的操作,一步一步的解析

*/

publicvoidgetMailContent(Partpart)throwsException{

Stringcontenttype=part.getContentType();

intnameindex=contenttype.indexOf("name");

booleanconname=false;

if(nameindex!

=-1)

conname=true;

System.out.println("CONTENTTYPE:

"+contenttype);

if(part.isMimeType("text/plain")&&!

conname){

bodytext.append((String)part.getContent());

}elseif(part.isMimeType("text/html")&&!

conname){

bodytext.append((String)part.getContent());

}elseif(part.isMimeType("multipart/*")){

Multipartmultipart=(Multipart)part.getContent();

intcounts=multipart.getCount();

for(inti=0;i

getMailContent(multipart.getBodyPart(i));

}

}elseif(part.isMimeType("message/rfc822")){

getMailContent((Part)part.getContent());

}else{

}

}

/**

**判断此邮件是否需要回执,如果需要回执返回"true",否则返回"false"

*/

publicbooleangetReplySign()throwsMessagingException{

booleanreplysign=false;

Stringneedreply[]=mimeMessage

.getHeader("Disposition-Notification-To");

if(needreply!

=null){

replysign=true;

}

returnreplysign;

}

/**

**获得此邮件的Message-ID

*/

publicStringgetMessageId()throwsMessagingException{

returnmimeMessage.getMessageID();

}

/**

**【判断此邮件是否已读,如果未读返回返回false,反之返回true】

*/

publicbooleanisNew()throwsMessagingException{

booleanisnew=false;

Flagsflags=((Message)mimeMessage).getFlags();

Flags.Flag[]flag=flags.getSystemFlags();

System.out.println("flags'slength:

"+flag.length);

for(inti=0;i

if(flag[i]==Flags.Flag.SEEN){

isnew=true;

System.out.println("seenMessage.......");

break;

}

}

returnisnew;

}

/**

**判断此邮件是否包含附件

*/

publicbooleanisContainAttach(Partpart)throwsException{

booleanattachflag=false;

StringcontentType=part.getContentType();

if(part.isMimeType("multipart/*")){

Multipartmp=(Multipart)part.getContent();

for(inti=0;i

BodyPartmpart=mp.getBodyPart(i);

Stringdisposition=mpart.getDisposition();

if((disposition!

=null)

&&((disposition.equals(Part.ATTACHMENT))||(disposition

.equals(Part.INLINE))))

attachflag=true;

elseif(mpart.isMimeType("multipart/*")){

attachflag=isContainAttach((Part)mpart);

}else{

Stringcontype=mpart.getContentType();

if(contype.toLowerCase().indexOf("application")!

=-1)

attachflag=true;

if(contype.toLowerCase().indexOf("name")!

=-1)

attachflag=true;

}

}

}elseif(part.isMimeType("message/rfc822")){

attachflag=isContainAttach((Part)part.getContent());

}

returnattachflag;

}

/**

**【保存附件】

*/

publicvoidsaveAttachMent(Partpart)throwsException{

StringfileName="";

if(part.isMimeType("multipart/*")){

Multipartmp=(Multipart)part.getContent();

for(inti=0;i

BodyPartmpart=mp.getBodyPart(i);

Stringdisposition=mpart.getDisposition();

if((disposition!

=null)

&&((disposition.equals(Part.ATTACHMENT))||(disposition

.equals(Part.INLINE)))){

fileName=mpart.getFileName();

if(fileName.toLowerCase().indexOf("gb2312")!

=-1){

fileName=MimeUtility.decodeText(fileName);

}

saveFile(fileName,mpart.getInputStream());

}elseif(mpart.isMimeType("multipart/*")){

saveAttachMent(mpart);

}else{

fileName=mpart.getFileName();

if((fileName!

=null)

&&(fileName.toLowerCase().indexOf("GB2312")!

=-1)){

fileName=MimeUtility.decodeText(fileName);

saveFile(fileName,mpart.getInputStream());

}

}

}

}elseif(part.isMimeType("message/rfc822")){

saveAttachMent((Part)part.getContent());

}

}

/**

**【设置附件存放路径】

*/

publicvoidsetAttachPath(Stringattachpath){

this.saveAttachPath=attachpath;

}

/**

**【设置日期显示格式】

*/

publicvoidsetDateFormat(Stringformat)throwsException{

this.dateformat=format;

}

/**

**【获得附件存放路径】

*/

publicStringgetAttachPath(){

returnsaveAttachPath;

}

/**

**【真正的保存附件到指定目录里】

*/

privatevoidsaveFile(StringfileName,InputStreamin)throwsException{

StringosName=System.getProperty("os.name");

Stringstoredir=getAttachPath();

Stringseparator="";

if(osName==null)

osName="";

if(osName.toLowerCase().indexOf("win")!

=-1){

separator="\\";

if(storedir==null||storedir.equals(""))

storedir="c:

\\tmp";

}else{

separator="/";

storedir="/tmp";

}

Filestorefile=newFile(storedir+separator+fileName);

System.out.println("storefile'spath:

"+storefile.toString());

//for(inti=0;storefile.exists();i++){

//storefile=newFile(storedir+separator+fileName+i);

//}

BufferedOutputStreambos=null;

BufferedInputStreambis=null;

try{

bos=newBufferedOutputStream(newFileOutputStream(storefile));

bis=newBufferedInputStream(in);

intc;

while((c=bis.read())!

=-1){

bos.write(c);

bos.flush();

}

}catch(Exceptionexception){

exception.printStackTrace();

thrownewException("文件保存失败!

");

}finally{

bos.close();

bis.close();

}

}

/**

**ReceiveMail类测试

*/

publicstaticvoidmain(Stringargs[])throwsException{

Stringhost="";

Stringusername="demo";//您的邮箱用户名

Stringpassword="******";//您的邮箱密码

Propertiesprops=newProperties();

Sessionsession=Session.getDefaultInstance(props,null);

Storestore=session.getStore("pop3");

store.connect(host,username,password);

Folderfolder=store.getFolder("INBOX");

folder.open(Folder.READ_ONLY);

Messagemessage[]=folder.getMessages();

System.out.println("Messages'slength:

"+message.length);

ReceiveMailpmm=null;

for(inti=0;i

pmm=newReceiveMail((MimeMessage)message[i]);

System.out

.println("Message"+i+"subject:

"+pmm.getSubject());

System.out.println("Message"+i+"sentdate:

"

+pmm.getSentDate());

System.out.println("Message"+i+"replysign:

"

+pmm.getReplySign());

System.out.println("Message"+i+"hasRead:

"+pmm.isNew());

System.out.println("Message"+i+"containAttachment:

"

+pmm.isContainAttach((Part)message[i]));

System.out.println("Message"+i+"form:

"+pmm.getFrom());

System.out.println("Message"+i+"to:

"

+pmm.getMailAddress("to"));

System.out.println("Message"+i+"cc:

"

+pmm.getMailAddress("cc"));

System.out.println("Message"+i+"bcc:

"

+pmm.getMailAddress("bcc"));

pmm.setD

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 幼儿教育 > 家庭教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1