首页 > 其他分享 >邮件工具类

邮件工具类

时间:2022-11-10 02:22:06浏览次数:33  
标签:get param contentMap session toString 工具 邮件

/**
 * 邮件工具类
 *
 * @author zj
 * @date 2022/03/14 16:39
 **/
public class EMailUtil {
 
    /**
     * 创建简单的文本邮件
     *
     * @param session     session对象
     * @param mailFrom    邮件发送方地址
     * @param mailTo      邮件接收方地址
     * @param mailTittle  邮件标题
     * @param mailContent 邮件内容
     * @return MimeMessage
     */
    public static MimeMessage simpleMail(Session session, String mailFrom, String mailTo, String mailTittle, String mailContent) {
        //创建默认的MimeMessage 对象
        MimeMessage msg = new MimeMessage(session);
        try {
            //邮件发送人
            msg.setFrom(mailFrom);
            //邮件接收人
            msg.setRecipients(Message.RecipientType.TO, mailTo);
            //邮件标题头
            msg.setSubject(mailTittle);
            //邮件发送日期
            msg.setSentDate(new Date());
            //邮件文本内容
            msg.setContent(mailContent, "text/html;charset=UTF-8");
        } catch (Exception mex) {
            mex.printStackTrace();
        }
        return msg;
    }
 
    /**
     * 创建带有附件的邮件
     *
     * @param session     session对象
     * @param contentMap  邮件配置和邮件内容
     * @param attachments 邮件附件
     * @return MimeMessage
     */
    public static MimeMessage attachMail(Session session, Map<String, Object> contentMap, List<File> attachments) {
        // 创建邮件对象
        MimeMessage mimeMessage = new MimeMessage(session);
        try {
            //邮件发送人
            mimeMessage.setFrom(contentMap.get("mailFrom").toString());
            //邮件接收人
            mimeMessage.setRecipients(Message.RecipientType.TO, contentMap.get("mailTo").toString());
            //邮件主题
            mimeMessage.setSubject(contentMap.get("mailTittle").toString());
            //创建多重消息
            MimeMultipart multipart = new MimeMultipart();
            //邮件正文
            BodyPart contentPart = new MimeBodyPart();
            contentPart.setContent(contentMap.get("mailContent").toString(), "text/html;charset=UTF-8");
            multipart.addBodyPart(contentPart);
            //邮件附件
            if (attachments != null) {
                for (File attachment : attachments) {
                    BodyPart attachmentPart = new MimeBodyPart();
                    DataSource source = new FileDataSource(attachment);
                    attachmentPart.setDataHandler(new DataHandler(source));
                    //避免中文乱码的处理
                    attachmentPart.setFileName(MimeUtility.encodeWord(attachment.getName()));
                    multipart.addBodyPart(attachmentPart);
                }
            }
            mimeMessage.setContent(multipart, "UTF-8");
            //保存邮件
            mimeMessage.saveChanges();
        } catch (Exception mex) {
            mex.printStackTrace();
        }
        return mimeMessage;
    }
 
    /**
     * 发送邮件方法
     *
     * @param contentMap 邮件配置和邮件内容map
     */
    public static void sendEmail(Map<String, Object> contentMap) {
        sendEmail(contentMap, null);
    }
 
    /**
     * 发送邮件方法
     *
     * @param contentMap 邮件配置和邮件内容map
     * @param attaches   邮件配置带附件
     */
    public static void sendEmail(Map<String, Object> contentMap, List<File> attaches) {
        try {
            //获取系统属性
            Properties pros = new Properties();
            pros.setProperty("mail.transport.protocol", "smtp");// 使用的协议
            pros.setProperty("mail.smtp.host", contentMap.get("host").toString());// 发件人的邮箱的SMTP服务器地址
            pros.setProperty("mail.smtp.auth", "true");// 需要请求认证
            //设置邮件服务器
            Session session = Session.getInstance(pros);
            if (attaches == null) {
                //发送简单的文本邮件
                MimeMessage msg = simpleMail(session, contentMap.get("mailFrom").toString(), contentMap.get("mailTo").toString(), contentMap.get("mailTittle").toString(), contentMap.get("mailContent").toString());
                Transport.send(msg, contentMap.get("mailFrom").toString(), contentMap.get("passwd").toString());
                System.out.println("Sent simpleMail successfully...");
            } else {
                //发送带附件邮件
                MimeMessage mimeMessage = attachMail(session, contentMap, attaches);
                Transport.send(mimeMessage, contentMap.get("mailFrom").toString(), contentMap.get("passwd").toString());
                System.out.println("Sent attaches Email successfully...");
            }
        } catch (Exception mex) {
            mex.printStackTrace();
        }
    }
 
}

标签:get,param,contentMap,session,toString,工具,邮件
From: https://www.cnblogs.com/guozhiqiang/p/16875770.html

相关文章

  • python发送邮件
    python发送邮件封装#encoding=utf-8importsmtplibfromemail.mime.multipartimportMIMEMultipartfromemail.mime.textimportMIMETextclassEmailMange:......
  • mac 开发C#,.net 工具推荐
    注意:Mac开发.net,一定要是.netcore以上的版本!!!!!!!!如果是不跨平台的.net只能用windows系统!!top1:第一名我还是觉得是IntelliJ家的Rider,虽然是收费的但是用起来真的丝......
  • 使用vue ui可视化工具创建vue项目时,卡住不动,无法创建
    最近使用vue可视化工具创建vue项目时,一直卡住不动,无法创建,也设置了淘宝镜像,很困惑,最后终于解决。根据以下路径找到以下文件(我的node.js是默认安装在了c盘)  打开此......
  • spring boot 项目,使用 maven 构建工具打包的两种方法
    根据pom.xml文件指定的打包格式,打包成对于格式的包。如下:<packaging>war</packaging>使用IDEA的终端直接操作(或者cmd)。第一种方式:输入​​mvnpackage​​:打包成......
  • 百度编辑器UEDITOR增加自定义工具栏暨百度编辑器上传WORD文档并保留源格式自动填充到
    ​如何做到ueditor批量上传word图片?1、前端引用代码<!DOCTYPE html PUBLIC "-//W3C//DTDXHTML1.0Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-......
  • java 串口工具jSerialComm
    由于项目之前用的串口工具RXTX只支持到jdk1.8然后项目目前用到的jdk是13的所以在网上找了一下找到了这个 jSerialComm目前使用是支持13及1.8的没做其它jdk版本测试......
  • Jackson工具类
    importjava.io.IOException;importcom.fasterxml.jackson.annotation.JsonInclude;importcom.fasterxml.jackson.core.JsonProcessingException;importcom.fasterx......
  • Kubernetes集群管理工具kubectl简介
     概述kubectl是Kubernetes集群的命令行工具,通过kubectl能够对集群本身进行管理,并能够在集群上进行容器化应用的安装和部署 命令格式kubectl[command][type][na......
  • Google团队开发的Guava工具包的代码示例
    上一篇​​java代码如何连接Linux虚拟机,还有文件上传下载,等基础命令​​一、项目源地址​​Github链接​​二、String操作2.1Join示例代码@Test//这个包引的是......
  • SQL慢?吐血整理MySQL中Explain分析工具
    前言当我们遇到一条SQL慢的时候,往往需要使用一些性能分析工具,看看这个SQL究竟是为什么慢?那本文就分享MySQL中的一个性能分析神器——​​Explain​​,通过读懂它的结果,我们......