javamail发送邮件的简单实例.docx

上传人:b****1 文档编号:1709251 上传时间:2023-05-01 格式:DOCX 页数:8 大小:17.35KB
下载 相关 举报
javamail发送邮件的简单实例.docx_第1页
第1页 / 共8页
javamail发送邮件的简单实例.docx_第2页
第2页 / 共8页
javamail发送邮件的简单实例.docx_第3页
第3页 / 共8页
javamail发送邮件的简单实例.docx_第4页
第4页 / 共8页
javamail发送邮件的简单实例.docx_第5页
第5页 / 共8页
javamail发送邮件的简单实例.docx_第6页
第6页 / 共8页
javamail发送邮件的简单实例.docx_第7页
第7页 / 共8页
javamail发送邮件的简单实例.docx_第8页
第8页 / 共8页
亲,该文档总共8页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

javamail发送邮件的简单实例.docx

《javamail发送邮件的简单实例.docx》由会员分享,可在线阅读,更多相关《javamail发送邮件的简单实例.docx(8页珍藏版)》请在冰点文库上搜索。

javamail发送邮件的简单实例.docx

javamail发送邮件的简单实例

javamail发送邮件的简单实例

今天学习了一下JavaMail,javamail发送邮件确实是一个比较麻烦的问题。

为了以后使用方便,自己写了段代码,打成jar包,以方便以后使用。

呵呵

  以下三段代码是我的全部代码,朋友们如果想用,直接复制即可。

  第一个类:

MailSenderInfo.java

packagecom.util.mail;  

/***//**  

*发送邮件需要使用的基本信息

*authorbywangfun

小说520 

*/   

importjava.util.Properties;   

publicclassMailSenderInfo{   

   //发送邮件的服务器的IP和端口   

   privateStringmailServerHost;   

   privateStringmailServerPort="25";   

   //邮件发送者的地址   

   privateStringfromAddress;   

   //邮件接收者的地址   

   privateStringtoAddress;   

   //登陆邮件发送服务器的用户名和密码   

   privateStringuserName;   

   privateStringpassword;   

   //是否需要身份验证   

   privatebooleanvalidate=false;   

   //邮件主题   

   privateStringsubject;   

   //邮件的文本内容   

   privateStringcontent;   

   //邮件附件的文件名   

   privateString[]attachFileNames;     

   /***//**  

     *获得邮件会话属性  

     */   

   publicPropertiesgetProperties(){   

     Propertiesp=newProperties();   

     p.put("mail.smtp.host",this.mailServerHost);   

     p.put("mail.smtp.port",this.mailServerPort);   

     p.put("mail.smtp.auth",validate?

"true":

"false");   

     returnp;   

   }   

   publicStringgetMailServerHost(){   

     returnmailServerHost;   

   }   

   publicvoidsetMailServerHost(StringmailServerHost){   

     this.mailServerHost=mailServerHost;   

   }  

   publicStringgetMailServerPort(){   

     returnmailServerPort;   

   }  

   publicvoidsetMailServerPort(StringmailServerPort){   

     this.mailServerPort=mailServerPort;   

   }  

   publicbooleanisValidate(){   

     returnvalidate;   

   }  

   publicvoidsetValidate(booleanvalidate){   

     this.validate=validate;   

   }  

   publicString[]getAttachFileNames(){   

     returnattachFileNames;   

   }  

   publicvoidsetAttachFileNames(String[]fileNames){   

     this.attachFileNames=fileNames;   

   }  

   publicStringgetFromAddress(){   

     returnfromAddress;   

   }   

   publicvoidsetFromAddress(StringfromAddress){   

     this.fromAddress=fromAddress;   

   }  

   publicStringgetPassword(){   

     returnpassword;   

   }  

   publicvoidsetPassword(Stringpassword){   

     this.password=password;   

   }  

   publicStringgetToAddress(){   

     returntoAddress;   

   }   

   publicvoidsetToAddress(StringtoAddress){   

     this.toAddress=toAddress;   

   }   

   publicStringgetUserName(){   

     returnuserName;   

   }  

   publicvoidsetUserName(StringuserName){   

     this.userName=userName;   

   }  

   publicStringgetSubject(){   

     returnsubject;   

   }  

   publicvoidsetSubject(Stringsubject){   

     this.subject=subject;   

   }  

   publicStringgetContent(){   

     returncontent;   

   }  

   publicvoidsetContent(StringtextContent){   

     this.content=textContent;   

   }   

}  

第二个类:

SimpleMailSender.java

packagecom.util.mail;  

 

importjava.util.Date;   

importjava.util.Properties;  

importjavax.mail.Address;   

importjavax.mail.BodyPart;   

importjavax.mail.Message;   

importjavax.mail.MessagingException;   

importjavax.mail.Multipart;   

importjavax.mail.Session;   

importjavax.mail.Transport;   

importjavax.mail.internet.InternetAddress;   

importjavax.mail.internet.MimeBodyPart;   

importjavax.mail.internet.MimeMessage;   

importjavax.mail.internet.MimeMultipart;   

 

/***//**  

*简单邮件(不带附件的邮件)发送器  

BT下载

*/   

publicclassSimpleMailSender {   

/***//**  

 *以文本格式发送邮件  

 *@parammailInfo待发送的邮件的信息  

 */   

   publicbooleansendTextMail(MailSenderInfomailInfo){   

     //判断是否需要身份认证   

     MyAuthenticatorauthenticator=null;   

     Propertiespro=mailInfo.getProperties();  

     if(mailInfo.isValidate()){   

     //如果需要身份认证,则创建一个密码验证器   

       authenticator=newMyAuthenticator(mailInfo.getUserName(),mailInfo.getPassword());   

     }  

     //根据邮件会话属性和密码验证器构造一个发送邮件的session   

     SessionsendMailSession=Session.getDefaultInstance(pro,authenticator);   

     try{   

     //根据session创建一个邮件消息   

     MessagemailMessage=newMimeMessage(sendMailSession);   

     //创建邮件发送者地址   

     Addressfrom=newInternetAddress(mailInfo.getFromAddress());   

     //设置邮件消息的发送者   

     mailMessage.setFrom(from);   

     //创建邮件的接收者地址,并设置到邮件消息中   

     Addressto=newInternetAddress(mailInfo.getToAddress());   

     mailMessage.setRecipient(Message.RecipientType.TO,to);   

     //设置邮件消息的主题   

     mailMessage.setSubject(mailInfo.getSubject());   

     //设置邮件消息发送的时间   

     mailMessage.setSentDate(newDate());   

     //设置邮件消息的主要内容   

     StringmailContent=mailInfo.getContent();   

     mailMessage.setText(mailContent);   

     //发送邮件   

     Transport.send(mailMessage);  

     returntrue;   

     }catch(MessagingExceptionex){   

         ex.printStackTrace();   

     }   

     returnfalse;   

   }   

      

   /***//**  

     *以HTML格式发送邮件  

     *@parammailInfo待发送的邮件信息  

     */   

   publicstaticbooleansendHtmlMail(MailSenderInfomailInfo){   

     //判断是否需要身份认证   

     MyAuthenticatorauthenticator=null;  

     Propertiespro=mailInfo.getProperties();  

     //如果需要身份认证,则创建一个密码验证器    

     if(mailInfo.isValidate()){   

       authenticator=newMyAuthenticator(mailInfo.getUserName(),mailInfo.getPassword());  

     }   

     //根据邮件会话属性和密码验证器构造一个发送邮件的session   

     SessionsendMailSession=Session.getDefaultInstance(pro,authenticator);   

     try{   

     //根据session创建一个邮件消息   

     MessagemailMessage=newMimeMessage(sendMailSession);   

     //创建邮件发送者地址   

     Addressfrom=newInternetAddress(mailInfo.getFromAddress());   

     //设置邮件消息的发送者   

     mailMessage.setFrom(from);   

     //创建邮件的接收者地址,并设置到邮件消息中   

     Addressto=newInternetAddress(mailInfo.getToAddress());   

     //Message.RecipientType.TO属性表示接收者的类型为TO   

     mailMessage.setRecipient(Message.RecipientType.TO,to);   

     //设置邮件消息的主题   

     mailMessage.setSubject(mailInfo.getSubject());   

     //设置邮件消息发送的时间   

     mailMessage.setSentDate(newDate());   

     //MiniMultipart类是一个容器类,包含MimeBodyPart类型的对象   

     MultipartmainPart=newMimeMultipart();   

     //创建一个包含HTML内容的MimeBodyPart   

     BodyParthtml=newMimeBodyPart();   

     //设置HTML内容   

     html.setContent(mailInfo.getContent(),"text/html;charset=utf-8");   

     mainPart.addBodyPart(html);   

     //将MiniMultipart对象设置为邮件内容   

     mailMessage.setContent(mainPart);   

     //发送邮件   

     Transport.send(mailMessage);   

     returntrue;   

     }catch(MessagingExceptionex){   

         ex.printStackTrace();   

     }   

     returnfalse;   

   }   

} 

第三个类:

MyAuthenticator.java

packagecom.util.mail;  

 

importjavax.mail.*;  

    

publicclassMyAuthenticatorextendsAuthenticator{  

   StringuserName=null;  

   Stringpassword=null;  

       

   publicMyAuthenticator(){  

   }  

   publicMyAuthenticator(Stringusername,Stringpassword){   

       this.userName=username;   

       this.password=password;   

   }   

   protectedPasswordAuthenticationgetPasswordAuthentication(){  

       returnnewPasswordAuthentication(userName,password);  

   }  

} 

  下面给出使用上面三个类的代码:

publicstaticvoidmain(String[]args){  

        //这个类主要是设置邮件  

     MailSenderInfomailInfo=newMailSenderInfo();   

     mailInfo.setMailServerHost("");   

     mailInfo.setMailServerPort("25");   

     mailInfo.setValidate(true);   

     mailInfo.setUserName("han2000lei@");   

     mailInfo.setPassword("**********");//您的邮箱密码   

     mailInfo.setFromAddress("han2000lei@");   

     mailInfo.setToAddress("han2000lei@");   

     mailInfo.setSubject("设置邮箱标题如http:

//www.guihua.org中国桂花网");   

     mailInfo.setContent("设置邮箱内容如http:

//www.guihua.org中国桂花网是中国最大桂花网站==");   

        //这个类主要来发送邮件  

     SimpleMailSendersms=newSimpleMailSender();  

         sms.sendTextMail(mailInfo);//发送文体格式   

         sms.sendHtmlMail(mailInfo);//发送html格式  

   } 

  最后,给出朋友们几个注意的地方:

  1、使用此代码你可以完成你的javamail的邮件发送功能。

三个类缺一不可。

  2、这三个类我打包是用的com.util.mail包,如果不喜欢,你可以自己改,但三个类文件必须在同一个包中

  3、不要使用你刚刚注册过的邮箱在程序中发邮件,如果你的163邮箱是刚注册不久,那你就不要使用“”。

因为你发不出去。

刚注册的邮箱是不会给你这种权限的,也就是你不能通过验证。

要使用你经常用的邮箱,而且时间比较长的。

  4、另一个问题就是mailInfo.setMailServerHost("");与mailInfo.setFromAddress("han2000lei@");这两句话。

即如果你使用163smtp服务器,那么发送邮件地址就必须用163的邮箱,如果不的话,是不会发送成功的。

  5、关于javamail验证错误的问题,网上的解释有很多,但我看见的只有一个。

就是我的第三个类。

你只要复制全了代码,我想是不会有问题的。

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

当前位置:首页 > 考试认证 > 公务员考试

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2