Maven项目Spring+Mybatis框架中实现各种发邮件的形式

一、前言

笔者写的是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




  • 8
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值