利用freemaker实现发送读取模板并带有附件的邮件

用freemaker发送带有附件的邮件

service层

  public void sendMessageMail(Object params, String title, String templateName) {

        try {
            MimeMessage mimeMessage=mailSender.createMimeMessage();
            MimeMessageHelper helper=new MimeMessageHelper( mimeMessage, true );
            helper.setFrom( form );

            //在此配置收件人邮箱
            helper.setTo( InternetAddress.parse( "配置收件人邮箱@qq.com" ) );

            helper.setSubject( "【" + title + "-" + LocalDate.now() + " " + LocalTime.now().withNano( 0 ) + "】" );//邮件标题
            //添加附件 这个地方是读取根据每天日期自动生成的excel
            Date date=new Date();
            String dataForm=new SimpleDateFormat( "yyyy-MM-dd" ).format( date );
            FileSystemResource file=new FileSystemResource( new File( uploadPath + "workday/" + "Automationdaily/" + dataForm + "/XXX.xlsx" ) );
            helper.addAttachment( "测试.xlsx", file );
			//我附件上传服务器的位置
            String ImgPath="http://ip:8084/files/workday/img/";
            //利用freemaker
            Map<String, Object> model=new HashMap<>();
            model.put( "seturl", ImgPath + dataForm + "/excel01.jpg" );
            //model.addAttribute( "seturl",ImgPath + dataForm + "/excel01.jpg");
            model.put( "seturl1", ImgPath + dataForm + "/excel02.jpg" );
            //连接用户统计
            model.put( "seturl2", ImgPath + dataForm + "/excel03.jpg" );
            //分时上下行
            model.put( "seturl3", ImgPath + dataForm + "/excel04.jpg" );
            Template template=configurer.getConfiguration().getTemplate( "runLog.html" );
            String text=FreeMarkerTemplateUtils.processTemplateIntoString( template, model );
            helper.setText( text, true );

            mailSender.send( mimeMessage );
        } catch (MessagingException e) {
            e.printStackTrace();
        } catch (MalformedTemplateNameException e) {
            e.printStackTrace();
        } catch (ParseException e) {
            e.printStackTrace();
        } catch (TemplateNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } catch (TemplateException e) {
            e.printStackTrace();
        }

控制层
因为我的方法是一个自动发送的可视化web页面继承了Job类

@Component
public class MailJobTask implements Job {
    @Autowired
    private MailService mailService;
    //配置文件上传服务器位置
    @Value( "${develop.uploadPath}")
    private String uploadPath;


    @Override
    public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {

        System.out.println("进入到发送附件");

        mailService.sendMessageMail("message", "发送标题", "emailMessage.html");//模板页面
    }

}

可以根据需求在进行修改

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值