一、前言
笔者写的是Maven项目,Java项目可以参考:http://www.360doc.com/content/15/0616/15/21365845_478529653.shtml主要不同之处就是添加依赖包,maven在pom.xml添加依赖导入就行了,方便快捷。(这里只截取下文代码中主要用到的包:spring-context-support-version.jar、mail-version.jar,ssm其他依赖包自行添加)
二、代码
package com.kilomob.powernetwork.chinaunicom.service.monitor;
import java.io.File;
import javax.annotation.Resource;
import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.core.io.FileSystemResource;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.stereotype.Service;
import com.kilomob.powernetwork.common.service.monitor.SendMailService;
/**
* @Description:发邮件
* @author: fengjk
* @time:2017年4月20日 下午7:42:35
*/
@Service
public class SendMailServiceImpl implements SendMailService{
private static final Logger logger = LoggerFactory.getLogger(SendMailServiceImpl.class);
@Resource
JavaMailSender mailSender;
@Resource
SimpleMailMessage simpleMailMessage;
/**
*
* @Description:普通文本发邮件形式
* @param subject 主题
* @param content 正文
* @param toMail 收件人邮箱
* void
* @exception:
* @author: fengjk
* @time:2017年4月20日 下午8:06:05
*/
@Override
public void sendSimpleMail(String subject,String content,String toMail) {
simpleMailMessage.setSubject(subject);
simpleMailMessage.setText(content);
simpleMailMessage.setTo(toMail);
mailSender.send(simpleMailMessage);
logger.info("邮件发送成功..");
}
/**
*
* @Description:html发邮件形式
* @param subject 主题
* @param content 正文
* @param toMail 收件人邮箱
* void
* @exception:
* @author: fengjk
* @time:2017年4月20日 下午8:06:38
*/
public void sendHtmlMail(String subject,String content,String toMail) {
MimeMessage mailMessage = mailSender.createMimeMessage();
MimeMessageHelper messageHelper = new MimeMessageHelper(mailMessage);
try {
messageHelper.setTo(toMail);
messageHelper.setSubject(subject);
messageHelper.setText("<html><head></head><body><h1>"+content+"</h1></body></html>",true);
mailSender.send(mailMessage);
logger.info("邮件发送成功..");
} catch (MessagingException e) {
e.printStackTrace();
}
}
/**
*
* @Description: 带图片发邮件形式
* @param subject 主题
* @param content 正文
* @param toMail 收件人邮箱
* @param picturePath 图片路径
* void
* @exception:
* @author: fengjk
* @time:2017年4月20日 下午8:05:40
*/
public void sendPictureMail(String subject,String content,String toMail,String picturePath){
MimeMessage mailMessage = mailSender.createMimeMessage();
MimeMessageHelper messageHelper;
try {
messageHelper = new MimeMessageHelper(mailMessage,true);
messageHelper.setTo(toMail);
messageHelper.setSubject(subject);
//messageHelper.setText("<html><head></head><body><h1>" + content +"</h1><img src=/"+cid:aaa + /"/></body></html>",true);
FileSystemResource img = new FileSystemResource(new File(picturePath));
messageHelper.addInline("aaa",img);
//发送邮件
mailSender.send(mailMessage);
logger.info("邮件发送成功..");
} catch (MessagingException e) {
e.printStackTrace();
}
}
/**
*
* @Description:带附件发邮件形式
* @param subject 标题
* @param content 正文
* @param toMail 收件人邮箱
* @param accessoryPath 附件路径
* @param accessoryName 附件名
* void
* @exception:
* @author: fengjk
* @time:2017年4月20日 下午8:05:14
*/
public void sendMailTakeAccessory(String subject,String content,String toMail,String accessoryPath,String accessoryName){
MimeMessage mailMessage = mailSender.createMimeMessage();
MimeMessageHelper messageHelper;
try {
messageHelper = new MimeMessageHelper(mailMessage,true,"utf-8");
messageHelper.setTo(toMail);
messageHelper.setSubject(subject);
messageHelper.setText("<html><head></head><body><h1>"+content+"</h1></body></html>",true);
FileSystemResource file = new FileSystemResource(new File(accessoryPath));
messageHelper.addAttachment(accessoryName,file);
mailSender.send(mailMessage);
logger.info("邮件发送成功..");
} catch (MessagingException e) {
e.printStackTrace();
}
}
}
SendMailService是一个对外的接口类,这里主要提供主程代码
三、配置文件
application-context.xml
<context:property-placeholder location="classpath:application.properties"/>
<bean id="mailMessage" class="org.springframework.mail.SimpleMailMessage">
<property name="from" value ="${mail.from}"></property>
</bean>
<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
<property name="defaultEncoding" value="UTF-8" />
<property name="host" value="${mail.host}" />
<property name="username" value="${mail.username}" />
<property name="password" value="${mail.password}" />
<property name="javaMailProperties">
<props>
<!-- 设置认证开关 -->
<prop key="mail.smtp.auth">true</prop>
<!-- 启动调试开关 -->
<prop key="mail.debug">true</prop>
<!-- 设置发送延时 -->
<prop key="mail.smtp.timeout">0</prop>
<prop key="mail.smtp.socketFactory.class">${mail.smtp.socketFactory.class}</prop>
<prop key="mail.smtp.port">${mail.smtp.port}</prop>
<prop key="mail.smtp.socketFactory.port">${mail.smtp.socketFactory.port}</prop>
</props>
</property>
</bean>
application.properties
mail.to=liangcm@1000mob.com
mail.from=qmhl@1000mob.com
mail.host=smtp.exmail.qq.com
mail.username=qmhl@1000mob.com
mail.password=qmhL_123
mail.smtp.socketFactory.class=javax.net.ssl.SSLSocketFactory
mail.smtp.port=465
mail.smtp.socketFactory.port =465
如果代码中不传参收件人邮箱toMail,mail.to默认的就是收件人邮箱。注意:配置文件是放在src/main/resources目录下
文章如有笔误,请及时留言联系笔者,万分感谢!欢迎加群探讨学习,qq群:583138104