spring+Struts2实现的javamail发送的html格式

来源:互联网 发布:java jws webservice 编辑:程序博客网 时间:2024/06/06 12:56

一次项目中接触到邮箱发送功能,此次贴出来贡大家分享下,o(∩_∩)o 哈哈,可能有不足的地方,忘多指教!

 

1、准备工作

mail.jar,activation.jar、spring.jar

 

2、Java类MailAction.java

package com.hmcq.xxw.users.action;

import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;

import org.springframework.mail.javamail.JavaMailSenderImpl;
import org.springframework.mail.javamail.MimeMessageHelper;
import com.opensymphony.xwork2.ActionSupport;

@SuppressWarnings("serial")
public class MailAction extends ActionSupport {
 
 private String name;//姓名
 private String ntroduction;//简介
 private String description;//描述
 private String intent;//意图
 private String ontact;//联系方式

 

 public String getName() {
  return name;
 }
 public void setName(String name) {
  this.name = name;
 }
 public String getNtroduction() {
  return ntroduction;
 }
 public void setNtroduction(String ntroduction) {
  this.ntroduction = ntroduction;
 }
 public String getDescription() {
  return description;
 }
 public void setDescription(String description) {
  this.description = description;
 }
 public String getIntent() {
  return intent;
 }
 public void setIntent(String intent) {
  this.intent = intent;
 }
 public String getOntact() {
  return ontact;
 }
 public void setOntact(String ontact) {
  this.ontact = ontact;
 }

//以上是为获取界面的输出内容

 

 private JavaMailSenderImpl mailSender; 
 @SuppressWarnings("unused")
 private MimeMessageHelper messageHelper;//html格式的邮件
 
 public void setMessageHelper(MimeMessageHelper messageHelper) {
  this.messageHelper = messageHelper;
 }
 public void setMailSender(JavaMailSenderImpl mailSender) {
  this.mailSender = mailSender;
 }
 

/*

 *发送普通文本邮件
 private SimpleMailMessage mailMessage;

 public void setMailMessage(SimpleMailMessage mailMessage) {
  this.mailMessage = mailMessage;
 }
 */
 public String sendMail(){ 
  //SimpleMailMessage msg = new SimpleMailMessage(mailMessage);
  MimeMessage mailMessage = mailSender.createMimeMessage();
  MimeMessageHelper messageHelper = new MimeMessageHelper(mailMessage);
  //msg.setText("Spring Mail Simple!");
  //设置收件人,寄件人
  try {
   messageHelper.setTo("此处为你所要发送的邮箱地址");
   messageHelper.setFrom("通过哪个邮箱来发送");
   messageHelper.setSubject("商务留言信息!");
   String htmlContent = "<html><head></head><body><div align='center'><table><tr><td colspan='2' align='center'><strong>吸星网商务留言板</strong></td>"+
  "</tr><tr><td height='51'><strong>姓名:</strong></td><td><input type='text' size='52' value='"+this.getName()+"'></td></tr>"+
  "<tr><td><strong>简介:</strong></td><td><textarea cols='50' rows='7'>"+this.getNtroduction()+"</textarea></td></tr>"+
  "<tr><td><strong>商务事件描述:</strong></td><td><textarea cols='50' rows='5'>"+this.getDescription()+"</textarea></td></tr>"+
  "<tr><td><strong>意图:</strong></td><td><textarea cols='50' rows='5'>"+this.getIntent()+"</textarea></td></tr>"+
  "<tr><td><strong>联络方式:</strong></td><td><textarea cols='50' rows='6'>"+this.getOntact()+"</textarea></td>"+
  "</tr></table></div></body></html>";
   mailMessage.setContent(htmlContent, "text/html;charset=utf8");//此处为解决邮箱接收时的中文乱码
   mailSender.send(mailMessage);
   //mailSender.send(messageHelper);
  } catch (MessagingException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
  return "sendok";
  
 }
}

}

 

3、spring配置文件applicationContext.xml

<!-- mail配置开始 -->
 <bean id="mailAction" class="com.hmcq.xxw.users.action.MailAction">
  <property name="mailSender" ref="mailSender"></property>
  <!-- <property name="mailMessage" ref="mailMessage"></property>  -->
 </bean>
 <bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
 <property name="host" value="smtp.163.com"></property>
 <!-- mail account -->
 <property name="to" value="发送者的邮箱地址"></property>
 <property name="password" value="邮箱密码"></property>
 <property name="javaMailProperties">
  <props>
   <prop key="mail.smtp.auth">true</prop>
  </props>
 </property>
 </bean>
 <!-- mail配置结束-->

 

4、struts2的配置文件struts.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
    <constant name="struts.objectFactory" value="spring" />
    <constant name="struts.devMode" value="false" />
    <constant name="struts.i18n.encoding" value="utf-8" />
    <package name="springtimer"   extends="struts-default">
       <action name="mailsend" class="mailAction" method="sendMail">
        <result>sendok.jsp</result>
        <interceptor-ref name="defaultStack"/>
       </action>
    </package>
</struts>

 

5、测试页面

businessMessage.jsp

<%@ page language="java" import="java.util.*"  pageEncoding="UTF-8"%>

<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
   
    <title>My JSP 'send.jsp' starting page</title>
   
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <meta http-equiv="pragma" content="no-cache">
 <meta http-equiv="cache-control" content="no-cache">
 <meta http-equiv="expires" content="0">   
 <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
 <meta http-equiv="description" content="This is my page">

  </head>
 
  <body>
   <form action="mailsend.action" method="post">
 <div align="center">
 <table style="color: #999999;">
 <tr><td colspan="2" align="center"><strong>吸星网商务留言板</strong></td>
 </tr>
 <tr><td height="51"><strong>您的名字:</strong></td>
 <td><input name="name" type="text" size="60" style="color: #999999;" /></td></tr>
 <tr><td height="135"><strong>您的简介:</strong></td>
 <td><textarea name="ntroduction" cols="50" rows="7" style="color: #999999;"></textarea></td></tr>
 <tr><td height="110"><strong>您的商务事件描述:</strong></td>
 <td><textarea name="description" cols="50" rows="5" style="color: #999999;"></textarea></td></tr>
 <tr><td height="100"><strong>您的意图:</strong></td>
 <td><textarea name="intent" cols="50" rows="5" style="color: #999999;"></textarea></td></tr>
 <tr><td height="122"><strong>您的联络方式:</strong></td>
   <td><textarea name="ontact" cols="50" rows="6" style="color: #999999;">电话:
邮箱:
QQ:
MSN:
博客:
网站:
   </textarea></td>
 </tr>
 <tr><td height="54"></td>
 <td><input type="reset" value=" 重写 "  /><input type="submit" value=" 发送 "/></td></tr>
 </table>
</div>
   </form>

  </body>
</html>

 

sendok.jsp

<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
   
    <title>My JSP 'sendok.jsp' starting page</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="keywords" content="keyword1,keyword2,keyword3">
 <meta http-equiv="description" content="This is my page">

  </head>
 
  <body>
     邮件发送成功!(Send Mail Success!) <br>
  </body>
</html>

6、直接运行businessMessage.jsp就O啦!!!

原创粉丝点击