几天研究了一下spring 的邮件发送很爽。
看代码:
package com.cn.mail;
import java.io.File;
import javax.mail.internet.MimeMessage;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.FileSystemXmlApplicationContext;
import org.springframework.core.io.FileSystemResource;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.JavaMailSenderImpl;
import org.springframework.mail.javamail.MimeMessageHelper;
public class SendMail {
public static void main(String[] args) throws Exception {
ApplicationContext ctx = new FileSystemXmlApplicationContext(
"src/applicationContext-hibernate.xml");
JavaMailSender sender = (JavaMailSender) ctx.getBean("mailSender");
SendMail springMail = new SendMail();
//测试发送只有文本信息的简单测试
springMail.sendTextMail(sender);
//测试发送html
springMail.sendHtml(sender);
//测试发送带附件的邮件
springMail.sendMimeMessage(sender);
}
/** *//**
* 测试发送只有文本信息的简单测试
* @param sender 邮件发送器
* @throws Exception
*/
private void sendTextMail(JavaMailSender sender) throws Exception {
SimpleMailMessage mail = new SimpleMailMessage();
mail.setTo("wangchao_17915566@126.com");
mail.setFrom("wangchao_17915566@163.com");
mail.setSubject("test by amigo");
mail.setText("spring Mail的简单测试");
sender.send(mail);
System.out.println("成功发送文本文件!");
}
/** *//**
* 测试发送有html的简单测试
* @param sender 邮件发送器
* @throws Exception
*/
private void sendHtml(JavaMailSender sender)throws Exception{
JavaMailSenderImpl senderImpl = new JavaMailSenderImpl();
MimeMessage mailMessage = senderImpl.createMimeMessage();
MimeMessageHelper messageHelper = new MimeMessageHelper(mailMessage);
//设置收件人,寄件人
messageHelper.setTo("wangchao_17915566@126.com");
messageHelper.setFrom("wangchao_17915566@163.com");
messageHelper.setSubject("测试HTML邮件!");
//true 表示启动HTML格式的邮件
messageHelper.setText("<html><head></head><body><h1>hello!!chao.wang</h1></body></html>",true);
//发送邮件
sender.send(mailMessage);
System.out.println("html发送成功.....");
}
/** *//**
* 测试发送有html和附件的简单测试
* @param sender 邮件发送器
* @throws Exception
*/
private void sendMimeMessage(JavaMailSender sender)throws Exception{
JavaMailSenderImpl senderImpl = new JavaMailSenderImpl();
MimeMessage mailMessage = senderImpl.createMimeMessage();
//如果是增加附件mimeMessageHelper后一个参数要为true
MimeMessageHelper messageHelper = new MimeMessageHelper(mailMessage, true);
//设置收件人,寄件人
messageHelper.setTo("wangchao_17915566@126.com");
messageHelper.setFrom("wangchao_17915566@163.com");
messageHelper.setSubject("测试附件邮件!");
//true 表示启动HTML格式的邮件
messageHelper.setText("<html><head></head><body><h1>hello!!chao.wang</h1></body></html>",true);
//附件内容
FileSystemResource file = new FileSystemResource(new File("d:/1.jpg"));
// 这里的方法调用和插入图片是不同的。
messageHelper.addAttachment("1.jpg", file);
//发送邮件
sender.send(mailMessage);
System.out.println("附件发送成功.....");
}
}
以上是类文件
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> <beans> <bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl"> <!-- 邮件服务 --> <property name="host"> <value>smtp.163.com</value> </property> <!-- 用户验证-必须 --> <property name="javaMailProperties"> <props> <prop key="mail.smtp.auth">true</prop> </props> </property> <!-- 邮件服务用户名 --> <property name="username"> <value>wangchao_17915566</value> </property> <!-- 邮件服务密码 --> <property name="password"> <value>19841124</value> </property> </bean> </beans>
还需要一下的jar:
activation.jar,commons-logging-1.0.4.jar,mail.jar,spring.jar
配备源码完整版