java邮件通知工具类
工作中很难避免会有一些需要邮件通知的情况,网络上也有很多邮件模板和工具类,在此给出一个工具类供参考
前面一篇文章重新封装了工具给出更好的适应项目需要但为提供原始工具类作参考这里给出。
下面引入架包
工具类
packagecom.leon.isoftstoneweb.commen.utils.email; importjava.util.Date; importjava.util.Properties; importjavax.mail.Address; importjavax.mail.BodyPart; importjavax.mail.Message; 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; /** *@authorleon *@createDate2018年6月22日上午9:32:05 *@versionv1.0 *@classRemarks邮件工具类 */ publicclassSendEmailUtil{ /** *以文本格式发送邮件 * *@parammailInfo *待发送的邮件的信息 */ publicbooleansendTextMail(MailBodymailInfo)throwsException{ //判断是否需要身份认证 MailAuthenticatorauthenticator=null; Propertiespro=mailInfo.getProperties(); if(mailInfo.isValidate()){ //如果需要身份认证,则创建一个密码验证器 authenticator=newMailAuthenticator(mailInfo.getUserName(),mailInfo.getPassword()); } //根据邮件会话属性和密码验证器构造一个发送邮件的session SessionsendMailSession=Session.getDefaultInstance(pro,authenticator); //logBefore(logger,"构造一个发送邮件的session"); //根据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); //System.out.println("发送成功!"); returntrue; } /** *以HTML格式发送邮件 * *@parammailInfo *待发送的邮件信息 */ publicbooleansendHtmlMail(MailBodymailInfo)throwsException{ //判断是否需要身份认证 MailAuthenticatorauthenticator=null; Propertiespro=mailInfo.getProperties(); //如果需要身份认证,则创建一个密码验证器 if(mailInfo.isValidate()){ authenticator=newMailAuthenticator(mailInfo.getUserName(),mailInfo.getPassword()); } //根据邮件会话属性和密码验证器构造一个发送邮件的session SessionsendMailSession=Session.getDefaultInstance(pro,authenticator); //根据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; } /** *@paramSMTP *邮件服务器 *@paramPORT *端口 *@paramEMAIL *本邮箱账号 *@paramPAW *本邮箱密码 *@paramtoEMAIL *对方箱账号 *@paramTITLE *标题 *@paramCONTENT *内容 *@paramTYPE *1:文本格式;2:HTML格式 */ publicstaticbooleansendEmail(StringSMTP,StringPORT,StringEMAIL,StringPAW,StringtoEMAIL,StringTITLE, StringCONTENT,StringTYPE){ //这个类主要是设置邮件 MailBodymailInfo=newMailBody(); mailInfo.setMailServerHost(SMTP); mailInfo.setMailServerPort(PORT); mailInfo.setValidate(true); mailInfo.setUserName(EMAIL); mailInfo.setPassword(PAW); mailInfo.setFromAddress(EMAIL); mailInfo.setToAddress(toEMAIL); mailInfo.setSubject(TITLE); mailInfo.setContent(CONTENT); //这个类主要来发送邮件 SendEmailUtilsms=newSendEmailUtil(); try{ if("1".equals(TYPE)){ returnsms.sendTextMail(mailInfo); }else{ returnsms.sendHtmlMail(mailInfo); } }catch(Exceptione){ returnfalse; } } publicstaticvoidmain(String[]args){ SendEmailUtil.sendEmail("smtp.isoftstone.com","25","441053249@qq.com", "whkay+11F","441053249@qq.com","系统邮件测试", "******审批流程已审核!","2"); } }
邮件需要使用的基本信息
packagecom.leon.isoftstoneweb.commen.utils.email; importjava.util.Properties; /** *@authorleon *@createDate2018年6月22日上午9:35:05 *@versionv1.0 *@classRemarks发送邮件需要使用的基本信息 */ publicclassMailBody{ //发送邮件的服务器的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; } }
邮件服务器身份认证实体类
packagecom.leon.isoftstoneweb.commen.utils.email; importjavax.mail.*; /** *@authorleon *@createDate2018年6月22日上午9:35:05 *@versionv1.0 *@classRemarks身份认证实体类 */ publicclassMailAuthenticatorextendsAuthenticator{ StringuserName=null; Stringpassword=null; publicMailAuthenticator(){ } publicMailAuthenticator(Stringusername,Stringpassword){ this.userName=username; this.password=password; } protectedPasswordAuthenticationgetPasswordAuthentication(){ returnnewPasswordAuthentication(userName,password); } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。