首先项目除了Spring本身必须的包外,还必须添加java提供的mail.jar以及Spring依赖的spring-context-support-4.0.0.RELEASE.jar包,mail.jar下载地址:mail.jar下载链接
第一步配置applicationContext.xml如下:
<!-- 邮件发送 -->
<bean id="javaMailSenderImpl" class="org.springframework.mail.javamail.JavaMailSenderImpl">
<property name="host" value="${mail.smtp.host}"></property>
<property name="username" value="${mail.smtp.username}"></property>
<property name="password" value="${mail.smtp.password}"></property>
<!-- 相当于javax.mail.Session中的props属性-->
<property name="javaMailProperties">
<props>
<prop key="mail.smtp.auth">${mail.smtp.auth}</prop>
<prop key="mail.smtp.timeout">${mail.smtp.timeout}</prop>
<prop key="mail.smtp.from">${mail.smtp.from}</prop>
</props>
</property>
</bean>
propertiies配置如下:
mail.smtp.host=stmp.163.com
mail.smtp.auth=true
mail.smtp.timeout=25000
mail.smtp.from=fromUser@163.com
mail.smtp.username=userLoginName
mail.smtp.password=userLoginPassword
java代码:
package com.hubu.wk;
import java.io.File;
import javax.annotation.Resource;
import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
import org.springframework.core.io.FileSystemResource;
import org.springframework.mail.javamail.JavaMailSenderImpl;
import org.springframework.mail.javamail.MimeMessageHelper;
public class MainTest {
@Resource
private static JavaMailSenderImpl javaMailSenderImpl;
/**
*
* @param toEmail 收件人
* @param subject 邮件主题
* @param content 邮件内容
* @param filePath 附件路径
* @throws MessagingException
*/
public static void sendHtmlMail(String toEmail, String subject,
String content, String filePath) throws MessagingException {
MimeMessage mailMessage = javaMailSenderImpl.createMimeMessage();
MimeMessageHelper messageHelper = new MimeMessageHelper(mailMessage,
true, "utf-8");
// 设置收件人
messageHelper.setTo(toEmail);
messageHelper.setSubject(subject);// 标题
// true 表示启动HTML格式的邮件
messageHelper.setText(content, true);
if(null!=filePath){
FileSystemResource file = new FileSystemResource(new File(filePath));
if(file.exists()){
// 这里的方法调用和插入图片是不同的。
messageHelper.addAttachment("test.doc", file);
// messageHelper.addInline("imgName", file);//插入图片需调用此方法
}
}
// 发送邮件
javaMailSenderImpl.send(mailMessage);
}
}
Spring的IOC容器会根据@Resource注解自动将javaMailSenderImpl注入进来