java邮件送信正常returnpath_spring整合javamail发送邮件|javamail发送邮件|java发送邮件...

packagecom.dmefx.dmeadmin.service.impl;importjava.io.File;importjava.io.IOException;importjava.text.DateFormat;importjava.text.SimpleDateFormat;importjava.util.Date;importjava.util.HashMap;importjava.util.Map;importjava.util.Properties;importjavax.mail.MessagingException;importjavax.mail.internet.MimeMessage;importorg.apache.log4j.Logger;importorg.apache.velocity.app.VelocityEngine;importorg.springframework.core.io.FileSystemResource;importorg.springframework.mail.javamail.JavaMailSender;importorg.springframework.mail.javamail.MimeMessageHelper;importorg.springframework.stereotype.Component;importorg.springframework.transaction.annotation.Isolation;importorg.springframework.transaction.annotation.Propagation;importorg.springframework.transaction.annotation.Transactional;importorg.springframework.ui.velocity.VelocityEngineUtils;importcom.dmefx.dmeadmin.service.MailsendService;importcom.dmefx.dmeadmin.utils.StringUtil;importcom.dmefx.dmeadmin.utils.WebContextUtil;importfreemarker.template.Configuration;

@Transactional(propagation= Propagation.REQUIRED, isolation =Isolation.DEFAULT)

@Component("mailsendService")public class MailsendServiceImpl implementsMailsendService {/**Log4j日志处理(@author: victor)*/

private static final Logger log = Logger.getLogger(MailsendServiceImpl.class);/*** @description Text或者HTML格式邮件的方法

*@authorVictor

*@return发送成功返回true;否则,返回false;*/@Transactional(readOnly= false) //必须设置为false,因为此处切入了日志的保存逻辑

publicBoolean sendMail(String subject, String text, String emailAdress,

JavaMailSender javaMailSender, Boolean type) {

MimeMessage mMessage= javaMailSender.createMimeMessage();//创建邮件对象

MimeMessageHelper mMessageHelper;

Properties prop= newProperties();try{//从配置文件中拿到发件人邮箱地址

prop.load(this.getClass().getResourceAsStream("/mail.properties"));

String from= prop.get("mail.smtp.username") + "";

mMessageHelper= new MimeMessageHelper(mMessage, true, "UTF-8");//发件人邮箱

mMessageHelper.setFrom(from);//收件人邮箱

mMessageHelper.setTo(emailAdress);//邮件的主题也就是邮件的标题

mMessageHelper.setSubject(subject);//邮件的文本内容,true表示文本以html格式打开

if(type) {

mMessageHelper.setText(text,true);

}else{

mMessageHelper.setText(text,false);

}

javaMailSender.send(mMessage);//发送邮件

} catch(MessagingException e) {

e.printStackTrace();

log.debug("邮件发送错误:" +e);

}catch(IOException e) {

e.printStackTrace();

log.debug("邮件发送文件错误:" +e);

}return true;

}/*** @description FreeMarker模板格式的邮件的方法

*@authorVictor

*@return发送成功返回true;否则,返回false;*/@Transactional(readOnly= false) //必须设置为false,因为此处切入了日志的保存逻辑

publicBoolean sendMailFreeMarker(String subject, String location, String emailAdress, JavaMailSender javaMailSender,

Configuration freeMarkerConfiguration) {

MimeMessage mMessage= javaMailSender.createMimeMessage();//创建邮件对象

MimeMessageHelper mMessageHelper;

Properties prop= newProperties();try{//从配置文件中拿到发件人邮箱地址

prop.load(this.getClass().getResourceAsStream("/mail.properties"));

String from= prop.get("mail.smtp.username") + "";

mMessageHelper= new MimeMessageHelper(mMessage, true);//发件人邮箱

mMessageHelper.setFrom(from);//收件人邮箱

mMessageHelper.setTo(emailAdress);//邮件的主题也就是邮件的标题

mMessageHelper.setSubject(subject);//解析模板文件

mMessageHelper.setText(WebContextUtil.getFreemarkerText(freeMarkerConfiguration), true);//通过文件路径获取文件名字

String filename =StringUtil.getFileName(location);//定义要发送的资源位置

File file = newFile(location);

FileSystemResource resource= newFileSystemResource(file);

mMessageHelper.addAttachment(filename, resource);//在邮件中添加一个附件

javaMailSender.send(mMessage);//发送邮件

} catch(MessagingException e) {

e.printStackTrace();

log.debug("邮件发送错误:" +e);

}catch(IOException e) {

e.printStackTrace();

log.debug("邮件发送文件错误:" +e);

}return true;

}/*** @description Velocity模板引擎

*@authorVictor

*@return发送成功返回true;否则,返回false;*/@Transactional(readOnly= false) //必须设置为false,因为此处切入了日志的保存逻辑

publicBoolean sendMailVelocity(String subject, String location, String emailAdress, JavaMailSender javaMailSender,

VelocityEngine velocityEngine) {

MimeMessage mMessage= javaMailSender.createMimeMessage();//创建邮件对象

MimeMessageHelper mMessageHelper;

Properties prop= newProperties();try{//从配置文件中拿到发件人邮箱地址

prop.load(this.getClass().getResourceAsStream("/mail.properties"));

System.out.println(this.getClass().getResourceAsStream("/mail.properties"));

String from= prop.get("mail.smtp.username") + "";

mMessageHelper= new MimeMessageHelper(mMessage, true, "UTF-8");//发件人邮箱

mMessageHelper.setFrom(from);//收件人邮箱

mMessageHelper.setTo(emailAdress);//邮件的主题也就是邮件的标题

mMessageHelper.setSubject(subject);

Map map = new HashMap();//获取日期并格式化

Date date = newDate();

DateFormat bf= new SimpleDateFormat("yyyy-MM-dd E a HH:mm:ss");

String str=bf.format(date);

map.put("date", str);

String content= VelocityEngineUtils.mergeTemplateIntoString(velocityEngine, "email.vm", "UTF-8", map);

mMessageHelper.setText(content,true);//通过文件路径获取文件名字

String filename =StringUtil.getFileName(location);//定义要发送的资源位置

File file = newFile(location);

FileSystemResource resource= newFileSystemResource(file);

mMessageHelper.addAttachment(filename, resource);//在邮件中添加一个附件//mMessageHelper.addAttachment("JavaApiRename.txt", resource2);//

//在邮件中添加一个附件

javaMailSender.send(mMessage);//发送邮件

} catch(MessagingException e) {

e.printStackTrace();

log.debug("邮件发送错误:" +e);

}catch(IOException e) {

e.printStackTrace();

log.debug("邮件发送文件错误:" +e);

}return true;

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值