黑豹程序员-java发邮件,发送内容支持html,带多附件的案例

介绍

发邮件mail是常见的软件功能,下面利于spring和java的mail库实现发送内容支持html,带多附件的案例

开启SMTP邮件发送协议

谁提供的SMTP邮件服务,就找谁开启。QQ邮箱类似。

依赖

bash 复制代码
        <!--Java MAil 发送邮件API-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-mail</artifactId>
        </dependency>
        <dependency>
            <groupId>javax.mail</groupId>
            <artifactId>javax.mail-api</artifactId>
            <version>1.6.2</version>
        </dependency>

代码

bash 复制代码
package com.mail;

import com.sun.xml.internal.messaging.saaj.packaging.mime.MessagingException;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.PropertySource;
import org.springframework.mail.javamail.JavaMailSenderImpl;
import org.springframework.mail.javamail.MimeMessageHelper;

import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import java.io.File;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Properties;

/**
 * @version v1.0 创建时间:2023/11/20 15:59
 * @author: 作者:陈子枢
 * @web CSDN:https://blog.csdn.net/nutony
 * @description 描述:读取属性配置文件,发送邮件
 */

@Slf4j
@PropertySource("classpath:mail.properties")
public class MailClient {

    @Value("${host}")
    private String minioUrl;
    @Value("${port}")
    private int port;

    public static void sender(String form, String cc, String subject, String html, List<String> attachments) throws javax.mail.MessagingException {
        JavaMailSenderImpl sender = new JavaMailSenderImpl();
        sender.setHost("smtp.163.com");
        sender.setPort(25);

        sender.setUsername(form);
        sender.setPassword("配置的授权码");
        sender.setDefaultEncoding("UTF-8");

        // 简化对mimeMessage的封装
        MimeMessage message = sender.createMimeMessage();
        MimeMessageHelper helper = new MimeMessageHelper(sender.createMimeMessage(), true, "UTF-8");

        helper.setFrom(sender.getUsername());  //邮件发送人
        helper.setCc(cc);                  //抄送
        helper.setSubject(subject);            //标题
        helper.setText(html,true);       //正文

        //邮件附件
        for(String attachment: attachments) {
            File file = new File(attachment);
            helper.addAttachment(file.getName(), file);
        }
        sender.send(helper.getMimeMessage());
    }

    public static void main(String[] args) throws MessagingException, javax.mail.MessagingException {
        List<String> attachments = new ArrayList<>();
        attachments.add("d:\\1.png");
        attachments.add("d:\\2.png");

        MailClient.sender("13261758319@163.com", "52399178@qq.com", "HTML邮件", "<h1 style='color:red'>hello,world!</h1>",attachments);


        log.info("邮件发送成功!");

    }

}
相关推荐
快乐就好ya37 分钟前
Java多线程
java·开发语言
IT学长编程42 分钟前
计算机毕业设计 二手图书交易系统的设计与实现 Java实战项目 附源码+文档+视频讲解
java·spring boot·毕业设计·课程设计·毕业论文·计算机毕业设计选题·二手图书交易系统
CS_GaoMing1 小时前
Centos7 JDK 多版本管理与 Maven 构建问题和注意!
java·开发语言·maven·centos7·java多版本
艾伦~耶格尔2 小时前
Spring Boot 三层架构开发模式入门
java·spring boot·后端·架构·三层架构
man20172 小时前
基于spring boot的篮球论坛系统
java·spring boot·后端
2401_858120532 小时前
Spring Boot框架下的大学生就业招聘平台
java·开发语言
S hh2 小时前
【Linux】进程地址空间
java·linux·运维·服务器·学习
转调2 小时前
每日一练:地下城游戏
开发语言·c++·算法·leetcode
Java探秘者2 小时前
Maven下载、安装与环境配置详解:从零开始搭建高效Java开发环境
java·开发语言·数据库·spring boot·spring cloud·maven·idea
攸攸太上2 小时前
Spring Gateway学习
java·后端·学习·spring·微服务·gateway