java通过javamail进行邮件发送(带文件附件)

您所在的位置:网站首页 如何将word通过邮箱发送到邮箱中心 java通过javamail进行邮件发送(带文件附件)

java通过javamail进行邮件发送(带文件附件)

2024-07-05 22:12:45| 来源: 网络整理| 查看: 265

spring mvc版本 jar包

通过maven引入jar包

1.5.0-b01 javax.mail mail ${javax.mail.version}

引入成功后,就可以在代码里面引入

java代码 import lombok.Getter; import lombok.Setter; import lombok.ToString; import java.util.List; /** * @Project xiangweihui * @PackageName com.xiangweihui.core.bean * @ClassName SendEmailMessageBean * @Author jiahong.xing * @Date 2019/7/19 11:44 * @Description 发送邮件对象 */ @ToString @Getter @Setter public class SendEmailMessageBean { //发送地址 private String toMail; //标题 private String title; //发送内容 private String cont; //文件对象 private List fileList; //发送备注/作用 private String info; public SendEmailMessageBean() { } public SendEmailMessageBean(String toMail, String title, String cont, String info) { this.toMail = toMail; this.title = title; this.cont = cont; this.info = info; } }

文件对象

import lombok.Getter; import lombok.Setter; import java.io.File; /** * @Project suishoukai-invoice * @PackageName com.suishoukai.invoice.core.bean * @ClassName EmailFileBean * @Author jiahong.xing * @Date 2019/5/6 17:57 * @Description 邮件文件对象 */ @Getter @Setter public class EmailFileBean { //名称 private String name; //文件 private File file; }

发送邮件核心代码

/** * 根据所有信息发送邮件,支持代理,直接发送,不异步 * * @return */ public static void sendEmail(SendEmailMessageBean sendEmailMessageBean) { //发送地址 String toMail = sendEmailMessageBean.getToMail(); //标题 String title = sendEmailMessageBean.getTitle(); //发送内容 String cont = sendEmailMessageBean.getCont(); // 2017.5.24因为不支持代理改变写法 if (!RegularUtil.testByRegular(toMail, RegularUtil.email_verify)) { throw new Exceptions("邮件地址格式错误:" + toMail); } EmailSetting emailSetting = SettingUtil.getEmailSetting(); //SMTP服务器地址 String smtpHost = emailSetting.getSmtpHost(); //SMTP服务器地址(端口) String smtpPort = emailSetting.getSmtpPort(); //发件人 String smtpFromMail = emailSetting.getSmtpFromMail(); //SMTP用户名 String smtpUsername = emailSetting.getSmtpUsername(); //SMTP密码 String smtpPassword = emailSetting.getSmtpPassword(); MimeMessage mimeMessage = javaMailSender.createMimeMessage(); try { javaMailSender.setHost(smtpHost); javaMailSender.setPort(Integer.parseInt(smtpPort)); javaMailSender.setUsername(smtpUsername); javaMailSender.setPassword(smtpPassword); MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMessage, true, "utf-8"); mimeMessageHelper.setFrom(MimeUtility.encodeWord(emailSetting.getEmail_name()) + " "); mimeMessageHelper.setSubject(title); mimeMessageHelper.setTo(toMail); //处理文件 if (CollectionUtils.isNotEmptyCollection(sendEmailMessageBean.getFileList())) { for (EmailFileBean emailFileBean : sendEmailMessageBean.getFileList()) { mimeMessageHelper.addAttachment(emailFileBean.getName(), emailFileBean.getFile()); } } mimeMessageHelper.setText(cont, true); log.info("向" + toMail + "发送了一封邮件,标题为:" + title + ",内容为:" + cont); javaMailSender.send(mimeMessage); } catch (Exception e) { e.printStackTrace(); } }

这里可以用异步线程或者mq消息异步发送

效果

已完成了邮件发送

springboot版本 需要在Configuration里进行spring注入即可

注入同时加入了静态引用

@Bean public JavaMailSender javaMailSender() { JavaMailSender javaMailSender = new JavaMailSenderImpl(); Properties javaMailProperties = new Properties(); javaMailProperties.setProperty("mail.smtp.auth", "true"); javaMailProperties.setProperty("mail.smtp.timeout", "5000"); javaMailProperties.setProperty("mail.smtp.starttls.enable", "false"); javaMailProperties.setProperty("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory"); ((JavaMailSenderImpl) javaMailSender).setJavaMailProperties(javaMailProperties); return javaMailSender; } @PostConstruct public void init() { //邮件 JavaMailSenderImpl javaMailSender = (JavaMailSenderImpl) javaMailSender(); EmailUtil.javaMailSender = javaMailSender; }

调用java代码和上面保持一致的

可以进行线程异步发送和mq消息发送,这两个的使用见以后的文章



【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭