一次项目中接触到邮箱发送功能,此次贴出来贡大家分享下,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啦!!!