java邮件发送

/*
 * Copyright (C) 2017 Baidu, Inc. All Rights Reserved.
 */
package com.nuonuo.fee.stat.coreindicator.job.email;

import java.util.Map;

import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;

import org.springframework.mail.MailException;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.ui.freemarker.FreeMarkerTemplateUtils;
import org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer;

import freemarker.template.Template;

/**
 * version 1.0
 * Created by zhang on PM11:50.
 * Description:
 */
public class TemplateEmail {
    private JavaMailSender sender;
    private FreeMarkerConfigurer freeMarkerConfigurer = null; // FreeMarker的技术类

    public void setFreeMarkerConfigurer(FreeMarkerConfigurer freeMarkerConfigurer) {
        this.freeMarkerConfigurer = freeMarkerConfigurer;
    }

    public void setSender(JavaMailSender sender) {
        this.sender = sender;
    }

    /**
     * 生成html模板字符串
     * @param root 存储动态数据的map
     * @return
     */
    private String getMailText(Map<String, Object> root, String templateName) {
        String htmlText = "hhhhhhhhhhhhh";
        try {
            // 通过指定模板名获取FreeMarker模板实例

            Template tpl = freeMarkerConfigurer.getConfiguration().getTemplate(templateName);
            htmlText = FreeMarkerTemplateUtils.processTemplateIntoString(tpl, root);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return htmlText;
    }

    /**
     * 发送邮件
     * @param root 存储动态数据的map
     * @param toEmail 邮件地址
     * @param subject 邮件主题
     * @return
     */
    public boolean sendTemplateMail(Map<String, Object> root, String toEmail, String subject, String templateName) {
        try {
            MimeMessage msg = sender.createMimeMessage();
            MimeMessageHelper helper = new MimeMessageHelper(msg, false, "utf-8"); // 由于是html邮件,不是mulitpart类型
            helper.setFrom("528640525@qq.com");
            helper.setTo("528640525@qq.com");
            helper.setSubject("测试测试");
            String htmlText = getMailText(root, templateName); // 使用模板生成html邮件内容
            helper.setText(htmlText, true);
            sender.send(msg);
            // System.out.println("成功发送模板邮件");
            return true;
        } catch (MailException e) {
            //  System.out.println("失败发送模板邮件");
            e.printStackTrace();
            return false;
        } catch (MessagingException e) {
            //  System.out.println("失败发送模板邮件");
            e.printStackTrace();
            return false;
        }

    }
}



/*
 * Copyright (C) 2017 Baidu, Inc. All Rights Reserved.
 */
package com.nuonuo.fee.stat.coreindicator.job.email;

import java.util.Map;

import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;

import org.springframework.mail.MailException;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.ui.freemarker.FreeMarkerTemplateUtils;
import org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer;

import freemarker.template.Template;

/**
 * version 1.0
 * Created by zhang on PM11:50.
 * Description:
 */
public class TemplateEmail {
    private JavaMailSender sender;
    private FreeMarkerConfigurer freeMarkerConfigurer = null; // FreeMarker的技术类

    public void setFreeMarkerConfigurer(FreeMarkerConfigurer freeMarkerConfigurer) {
        this.freeMarkerConfigurer = freeMarkerConfigurer;
    }

    public void setSender(JavaMailSender sender) {
        this.sender = sender;
    }

    /**
     * 生成html模板字符串
     * @param root 存储动态数据的map
     * @return
     */
    private String getMailText(Map<String, Object> root, String templateName) {
        String htmlText = "hhhhhhhhhhhhh";
        try {
            // 通过指定模板名获取FreeMarker模板实例

            Template tpl = freeMarkerConfigurer.getConfiguration().getTemplate(templateName);
            htmlText = FreeMarkerTemplateUtils.processTemplateIntoString(tpl, root);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return htmlText;
    }

    /**
     * 发送邮件
     * @param root 存储动态数据的map
     * @param toEmail 邮件地址
     * @param subject 邮件主题
     * @return
     */
    public boolean sendTemplateMail(Map<String, Object> root, String toEmail, String subject, String templateName) {
        try {
            MimeMessage msg = sender.createMimeMessage();
            MimeMessageHelper helper = new MimeMessageHelper(msg, false, "utf-8"); // 由于是html邮件,不是mulitpart类型
            helper.setFrom("528640525@qq.com");
            helper.setTo("528640525@qq.com");
            helper.setSubject("测试测试");
            String htmlText = getMailText(root, templateName); // 使用模板生成html邮件内容
            helper.setText(htmlText, true);
            sender.send(msg);
            // System.out.println("成功发送模板邮件");
            return true;
        } catch (MailException e) {
            //  System.out.println("失败发送模板邮件");
            e.printStackTrace();
            return false;
        } catch (MessagingException e) {
            //  System.out.println("失败发送模板邮件");
            e.printStackTrace();
            return false;
        }

    }
}


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值