您的位置:首页 > 编程语言 > Java开发

spring 管理JavaMail发送邮件

2008-07-14 10:07 411 查看
我在项目中用到到JavaMail发送邮件的代码 向大家共享一下!

// 在Spring管理配置javaMail

<?xml version="1.0" encoding="GB18030"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
<!-- JavaMail 发送邮件配置 -->
<bean id="mailSenders"
class="org.springframework.mail.javamail.JavaMailSenderImpl">
<property name="host" value="smtp.163.com" />
<property name="port" value="25" />
<property name="username" value="userName" />
<property name="password" value="Password" />
<property name="javaMailProperties">
<props>
<!-- 如果不添加下面这个,将会出现553 authentication is required错误 -->
<prop key="mail.smtp.auth">true</prop>
<prop key="mail.smtp.timeout">0</prop>
</props>
</property>
</bean>

<!-- 配置发送邮件工具类 -->
<bean id="SendMailImpl"
class="shenghuo.common.util.mail.SendMailImpl">
<property name="mailSender">
<ref bean="mailSenders" />
</property>
</bean>

</beans>

//然后我们看一下 发送邮件的工具类

//首先定义一个接口

public interface SendMailIntrface {

public void sendMail(String sendContentType,SendMailContent Content);
}

//看看是怎么实现的

import java.util.Date;

import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Multipart;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;

import org.springframework.mail.MailException;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessagePreparator;
public class SendMailImpl implements SendMailIntrface {

//Spring Send Mail Object
JavaMailSender mailSender;

public JavaMailSender getMailSender() {
return mailSender;
}

public void setMailSender(JavaMailSender mailSender) {
this.mailSender = mailSender;
}

public void sendMail(String sendContentType,SendMailContent content)
{
if(sendContentType.equals("TEXT"))
{
SpringSendTextMail(mailSender,content);
}
}

private void SpringSendTextMail(JavaMailSender sender,SendMailContent content)
{
SimpleMailMessage mail = new SimpleMailMessage();
mail.setFrom(content.getFromMail());
mail.setTo(content.getToMail());
mail.setSubject(content.getSubject());
mail.setText(content.getText());
sender.send(mail);

System.out.println("成功发送文本文件!");
}

private void SpringSendTextMail(SendMailContent content)
{

final String toMail=content.getToMail();
final String fromMail=content.getFromMail();
final String subject=content.getSubject();
final String text =content.getText();

MimeMessagePreparator preparator = new MimeMessagePreparator() {
public void prepare(MimeMessage mimeMessage) throws MessagingException {
mimeMessage.setRecipient(Message.RecipientType.TO,
new InternetAddress(toMail));

mimeMessage.setFrom(new InternetAddress(fromMail));
mimeMessage.setSubject(subject);
mimeMessage.setSentDate(new Date());
mimeMessage.setText(
text);
}
};

try {
mailSender.send(preparator);
}
catch (MailException ex) {
ex.printStackTrace();
//log it and go on
System.err.println(ex.getMessage());
}

}

}

// 我在里面写了两个发送邮件的方法

public class SendMailAction extends ActionSupport{

SendMailIntrface mailSend;

private String toMail;
private String fromMail;
private String sendText;
private String subject;

public String getFromMail() {
return fromMail;
}

public void setFromMail(String fromMail) {
this.fromMail = fromMail;
}

public String getSendText() {
return sendText;
}

public void setSendText(String sendText) {
this.sendText = sendText;
}

public String getSubject() {
return subject;
}

public void setSubject(String subject) {
this.subject = subject;
}

public String getToMail() {
return toMail;
}

public void setToMail(String toMail) {
this.toMail = toMail;
}

public String execute() {

//mailSend.SpringSendMail("huzhihua225@126.com");

SendMailContent content = new SendMailContent();
content.setToMail(this.getToMail());
content.setFromMail(this.getFromMail());
content.setSubject(this.getSubject());
content.setText(this.getSendText());

mailSend.sendMail("TEXT",content);
try {

} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

//返回成功 跳转到成功页面
return "success";
}

public SendMailIntrface getMailSend() {
return mailSend;
}

public void setMailSend(SendMailIntrface mailSend) {
this.mailSend = mailSend;
}

//在Action 中调用 注意 我用的是struts 2.0 哦!

看看页面

<%@ page language="java" import="java.util.*" pageEncoding="GB18030"%>
<%@ taglib prefix="s" uri="/struts-tags"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>

<title> 超群邮件发送 ------ Spring Send Mail -- Jayden</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">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>

<body>

<s:form action="/mailSend.action">

<s:textfield name="fromMail" label="发送人" value="162102314@163.com"></s:textfield>
<s:textfield name="toMail" label="收件人"></s:textfield>
<s:textfield name="subject" label="主题"></s:textfield>

<s:textarea cols="20" name="sendText" rows="5" label="发送内容">
</s:textarea>
<s:submit value="发送"></s:submit>
</s:form>
</body>
</html>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: