阿里邮箱发送带excel附件邮件

导包

java 复制代码
<dependency>
      <groupId>javax.mail</groupId>
      <artifactId>mail</artifactId>
      <version>1.4.7</version>
</dependency>

内容

java 复制代码
调用
EmilUtil.sendEmail("xxxx@163.com",
                             host,
                             username,
                             password,
                             port,
                             excelFile,
                             "主题",
                             content);

工具类

java 复制代码
package com.ruoyi.common.utils.emil;

import org.thymeleaf.TemplateEngine;
import org.thymeleaf.context.Context;
import org.thymeleaf.spring5.SpringTemplateEngine;
import org.thymeleaf.templateresolver.ClassLoaderTemplateResolver;

import javax.activation.DataHandler;
import javax.activation.DataSource;
import javax.activation.FileDataSource;
import javax.mail.*;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
import java.io.File;
import java.security.Security;
import java.util.Map;
import java.util.Properties;

public class EmilUtil {


public static void sendEmail(String toEmail, String host, String username, String password,String port, File file, String bt, String contentXML) {
        try {
            Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
            final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";
            Properties props = System.getProperties();
            props.setProperty("mail.smtp.host", host);
            props.setProperty("mail.smtp.socketFactory.class", SSL_FACTORY);
            props.setProperty("mail.smtp.socketFactory.fallback", "false");
            //设置端口
            props.setProperty("mail.smtp.port", port);
            //启用调试
            props.setProperty("mail.debug", "true");
            props.setProperty("mail.smtp.socketFactory.port", port);
            props.setProperty("mail.smtp.auth", "true");
            //建立邮件会话
            Session session = Session.getDefaultInstance(props, new Authenticator() {
                @Override
                protected PasswordAuthentication getPasswordAuthentication() {
                    return new PasswordAuthentication(username, password);
                }
            });
            //建立邮件对象
            MimeMessage message = new MimeMessage(session);
            //设置邮件的发件人、收件人、主题
            //发件人账号
            message.setFrom(new InternetAddress(username));
            //收件人账号
            message.setRecipients(Message.RecipientType.TO, toEmail);
            //邮件标题
            message.setSubject(bt);
            //内容
            Multipart multipart = new MimeMultipart();
            BodyPart contentPart = new MimeBodyPart();
            //邮件内容
            contentPart.setContent(contentXML, "text/html;charset=utf-8");
            multipart.addBodyPart(contentPart);
            message.setContent(multipart);

            //附件
            // 创建消息部分
            BodyPart messageBodyPart = new MimeBodyPart();
            DataSource source = new FileDataSource(file);
            messageBodyPart.setDataHandler(new DataHandler(source));
            messageBodyPart.setFileName(file.getName());
            multipart.addBodyPart(messageBodyPart);
            message.saveChanges();

            Transport.send(message);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

}

配置

java 复制代码
//注意阿里邮箱设置设置第三方权限验证则无法验证通过    
mail:
        host: smtp.qiye.aliyun.com
        port: 465
        username: xxx@aliyun.com
        password: xxxx@#123465
相关推荐
YuTaoShao1 小时前
【LeetCode 热题 100】56. 合并区间——排序+遍历
java·算法·leetcode·职场和发展
程序员张31 小时前
SpringBoot计时一次请求耗时
java·spring boot·后端
孤水寒月3 小时前
基于HTML的悬窗可拖动记事本
前端·css·html
热爱生活的猴子3 小时前
阿里云服务器正确配置 Docker 国内镜像的方法
服务器·阿里云·docker
祝余呀3 小时前
html初学者第一天
前端·html
llwszx4 小时前
深入理解Java锁原理(一):偏向锁的设计原理与性能优化
java·spring··偏向锁
云泽野4 小时前
【Java|集合类】list遍历的6种方式
java·python·list
二进制person5 小时前
Java SE--方法的使用
java·开发语言·算法
耶啵奶膘5 小时前
uniapp+firstUI——上传视频组件fui-upload-video
前端·javascript·uni-app
小阳拱白菜6 小时前
java异常学习
java