手机版

java jsp struts2实现发送邮件功能

时间:2021-09-05 来源:互联网 编辑:宝哥软件园 浏览:

以下总结是2016/3/23在做一个网站时遇到的一个功能模块,现在将总结从为知笔记上搬家到CSDN,与大家共享,欢迎指正。

网页显示

这里写图片描述

0.准备工作

0.1先建立一个网项目,添加struts2开发包

0.2.需要另外导入一下两个冲突包mail.jar,activation.jar,可以自己网上下载,很多的!

以下为详细过程!

1.index.jsp页面

“% @”页面语言=“Java”导入=“Java”。乌提尔。*”页面编码=“UTF-8”% @ taglib前缀=' s ' uri='/struts-标记' %!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN ' % String path=request。getcontextpath();字符串基本路径=请求。getscheme()' ://'请求。getservername()“:”请求。getserverport()“path ”/;%html标题My JSP 'index.jsp '起始页/title meta http-equiv=' pragma ' content=' no-cache ' meta http-equiv=' cache-control ' content=' no-cache ' meta http-equiv=' expires ' content=' 0 ' meta http-equiv=' keyword ' content='关键字1,关键字2,关键字3 ' meta http-equiv=' description ' content='这是我的页面/head body s :表单操作=' send '收件人邮箱: '/s : ext字段s 3360 ext字段名称=主题“标签=”主题/s 3360 ext field s 3360 text rea name=' content ' label='内容行数=' 5 '/s 3360 textarea s 3360 submit值='发送s 3360提交s 3360表格/正文/html 2 . SendTestAction.java类

打包。电话。行动;导入Java。io。版画作家;导入javax。servlet。http。HttpServletResponse导入com。开放式交响乐。xwork 2。行动支持;导入com。电话。乌提尔。MailSenderinfo导入com。电话。乌提尔。SimpleMailSender公共类发送测试操作扩展了ActionSupport {私有静态最终长序列版本id=1L;私有字符串到;私人字符串QQ;私有字符串密码;私有字符串主题;私有字符串内容;public String getTo(){ return to;} public void setTo(String to){ this。to=to} public String getQQ(){ return QQ;} public void setQQ(String QQ){ this。QQ=QQ}公共字符串getPassword(){ 0返回密码;}公共void set密码(String密码){ this。密码=密码;} public String getSubject(){ return subject;} public void setSubject(String subject){ this。主语=主语;}公共字符串GetContent(){ 0返回内容;} public void setContent(String content){ this。内容=内容;} @覆盖公共字符串执行()引发异常{ mailssenderinfo mailInfo=new mailssenderinfo();邮件信息。SetMailServerHost(' SMTP。163 .com’);邮件信息。SetMailServerPort(' 25 ');邮件信息。SetValidate(true);邮件信息。setFromAddress('[电子邮件保护]');//自己邮箱邮件信息。setloaddress(to);//目标邮箱邮件信息。setusername('[电子邮件保护]');//自己邮箱//需要开启此邮箱的POP3/SMTP/IMAP服务,具体设置进入邮箱以后在"设置"里进行开启邮件信息。set password(' syfhhd 52 ');//自己邮箱密码//系统。出去。println(' password=' password ');mailInfo.setSubject(主题);mailInfo.setContent(内容);boolean为send=SimpleMailSender。发送文本邮件(MailInfo);/*HttpServletResponse响应;PrintWriter out=响应。getwriter();*/if(is send){ return SUCCESS;//return out.write('scriptalert('发送成功!');历史。back();/script ');} addActionError('发送失败!');返回输入}}3.3个主要实现发送邮件的类

3.1 MailSenderInfo.java-邮件实体类

打包。电话。util导入Java。乌提尔。属性;公共类MailSenderInfo { //发送邮件服务器私有字符串邮件服务器主机;//发送邮件服务器端口私有字符串邮件服务器端口=' 25 ';//邮件发送地址来自地址的私有字符串;//邮件接受者地址私有字符串到地址;//发送邮件服务器的登录用户名私有字符串用户名;//发送邮件服务器的登录密码私有字符串密码;//是否需要身份验证私有布尔validate=false//邮件主题私有字符串主题;//邮件的文本内容私有字符串内容;//邮件附件的文件名私有字符串[]附件文件名;//发送人的邮件信息,在创建会议是使用公共属性getProperties(){ Properties p=new Properties();p.put('mail.smtp.host ',这个。mailservershost);p.put('mail.smtp.port ',这个。邮件服务器端口);p.put('mail.smtp.auth ',validate?true ' : ' false ');返回p;} public String getmailservershost(){ return mailservershost;} public void setmailservershost(String mailservershost){ this。mail servershost=mail servershost;} public String getMailServerPort(){ return mailServerPort;} public void setMailServerPort(String Mailserverport){ this。邮件服务器端口=邮件服务器端口;} public String GetFromAddress(){ return FromAddress;} public void setFromAddress(字符串发件人地址){这个。起始地址=起始地址;} public String getloaddress(){返回地址;} public void setloadaddress(String to address){ this。解决;解决。}公共字符串getUserName(){ 0返回userName}公共void setUserName(字符串用户名){ this.userName=userName}公共字符串getPassword(){ 0返回密码;}公共void set密码(String密码){ this。密码=密码;} public boolean是validate(){ return validate;} public void setValidate(布尔验证){这个。验证=验证;} public String getSubject(){ return subject;} public void setSubject(String subject){ this。主语=主语;}公共字符串GetContent(){ 0返回内容;} public void setContent(String content){ this。内容=内容;} public String[]GetAttachFIlenames(){ return attachFIlenames;} public void setattachfilename(String[]attachfilename){ this。attachfilename=attachfilename} } 3.2 MyAuthenticator.java—认证所需

打包。电话。util导入javax。邮件。认证者;导入javax。邮件。密码认证;公共类我的身份验证者扩展了认证者{私有字符串用户名私有字符串密码;public my author(){ } public my author(字符串用户名,字符串密码){ this . username=usernamethis . password=password } @ Override protected password authentication get password authentication(){ 0返回新的密码验证(用户名、密码);} } 3.3 SimpleMailSender . Java构建发送邮件

打包。电话。util导入Java。乌提尔。日期;导入Java。乌提尔。属性;导入javax。邮件。地址;导入javax。邮件。身体部位;导入javax。邮件。消息;导入javax。邮件。messagingexception导入javax。邮件。多部分的;导入javax。邮件。会议;导入javax。邮件。运输;导入javax。邮件。互联网。INternet地址;导入javax。邮件。互联网。哑剧身体部分;导入javax。邮件。互联网。MiMemessage导入javax。邮件。互联网。MiMeMultipart公共类SimpleMailSender { //发送文本格式的邮件公共静态布尔发送文本邮件(MailSenderInfo MailInfo){ MyAuthenticator验证器=null属性属性=MailInfo。GetProperties();//如果需要身份认证,则创建一个密码验证器if(邮件信息。is validate()){ authenticator=new my authenticator(MailInfo)。getusername());} //根据发件人的服务器信息和发件人用户名和密码构造一个发送邮件的会话会话发送邮件会话=会话。getdefaultinstance(属性,验证器);尝试{ //根据会议创建一个邮件消息消息邮件消息=新的mime消息(sendMailSession);//创建邮件发送者地址发件人地址=新的INternet地址(MailInfo。getFromAddress());//设置邮件消息的发送者mailMessage.setFrom(从);//创建邮件的接收者地址,并设置到邮件消息中地址to=新的INternet地址(MailInfo。getoadress());设置收件人(邮件。收件人类型。收件人,收件人);//设置邮件消息的主题邮件。设置主题(邮件信息。GetSubject());//设置邮件消息发送的时间mailMessage.setSentDate(新日期());//设置邮件消息的主要内容字符串MailContent=MailInfo。GetContent();mailMessage.setText(邮件内容);//发送邮件运输。发送(邮件信息);返回真;} catch(异常e){ e . print stack trace();}返回false} //发送超文本标记语言格式的邮件公共静态布尔发送超文本标记语言邮件(MailSenderInfo mailInfo) { //判断是否需要身份认证我的身份验证者验证器=nullproperties pro=MailInfo。GetPropertieS();//如果需要身份认证,则创建一个密码验证器if(邮件信息。is validate()){ authenticator=new my authenticator(MailInfo)。getusername());} //根据邮件会话属性和密码验证器构造一个发送邮件的会话会话发送邮件会话=会话。getinstance(pro,authenticator);尝试{ //根据会议创建一个邮件消息消息邮件消息=新的mime消息(sendMailSession);//创建邮件发送者地址发件人地址=新的INternet地址(MailInfo。getFromAddress());//设置邮件消息的发送者mailMessage.setFrom(从);//创建邮件的接收者地址,并设置到邮件消息中地址to=新的INternet地址(MailInfo。getoadress());//消息。收件人类型。收件人属性表示接收者的类型为收件人邮件。设置收件人(邮件。收件人类型。收件人,收件人);//设置邮件消息的主题邮件。设置主题(邮件信息。GetSubject());//设置邮件消息发送的时间mailMessage.setSentDate(新日期());//MiniMultipart类是一个容器类,包含MimeBodyPart类型的对象多部分main part=new mime multipart();//创建一个包含超文本标记语言内容的mime正文部分正文部分html=new mime正文部分();//设置超文本标记语言内容html。setcontent(MailInfo。GetContent(),' text/html;charset=utf-8 ');main ParT。addBodyPart(html);//将最小多部分对象设置为邮件内容邮件。setcontent(主要部分);//发送邮件运输。发送(邮件信息);返回真;} catch(MessagingException ex){ ex。print stack trace();}返回false}}4.struts.xml配置

?可扩展标记语言版本='1.0 '编码='UTF-8 '?DOCTYPE struts PUBLIC '-//Apache软件基金会//DTD Struts配置2.1//EN ' ' http://Struts。阿帕奇。org/dtds/Struts-2.1。DTD ' Struts!-设置浏览器不缓存-常量名称=' struts。发球。静态的。浏览器缓存值=' false '/常量!-修改可扩展置标语言后不重启自动加载-常量名称=' struts。配置。XML。“重新加载”值=' true '/常量!-打印更详细的错误信息-常量名='struts.devMode '值=' true '/常量包名='邮件'命名空间='/mail '扩展=' struts-default '操作名='发送文本邮件'类=' com。电话。行动。'句子结构'结果名='success'/success.jsp/result结果名=' input '/index。JSP/结果/动作/包/struts注意:

登陆所用邮箱必须开启POP3/SMTP/IMAP服务,登陆邮箱,点击"设置"进行开启。

这里写图片描述

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

版权声明:java jsp struts2实现发送邮件功能是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。