zoukankan      html  css  js  c++  java
  • spring boot 加入mail邮件支持

    一、添加依赖

    <!-- 邮件整合 -->
    		<dependency>
    			<groupId>org.springframework.boot</groupId>
    			<artifactId>spring-boot-starter-mail</artifactId>
    		</dependency>

    二、添加mail.properties配置文件

    #设置邮箱主机
    spring.mail.host=smtp.qq.com
    #设置用户名
    spring.mail.username=xxxxxxx
    #设置密码
    #QQ邮箱->设置->账户->POP3/SMTP服务:开启服务后会获得QQ的授权码
    spring.mail.password=xxxxxxxxxxxxxxxx
    #端口
    spring.mail.port=465
    #协议
    #spring.mail.protocol=smtp
    #设置是否需要认证,如果为true,那么用户名和密码就必须的,
    #如果设置false,可以不设置用户名和密码,当然也得看你的对接的平台是否支持无密码进行访问的。
    spring.mail.properties.mail.smtp.auth=true
    #STARTTLS[1]  是对纯文本通信协议的扩展。它提供一种方式将纯文本连接升级为加密连接(TLS或SSL),而不是另外使用一个端口作加密通信。
    spring.mail.properties.mail.smtp.starttls.enable=true
    spring.mail.properties.mail.smtp.starttls.required=true
    spring.mail.properties.mail.smtp.socketFactory.class=javax.net.ssl.SSLSocketFactory

    三、加载属性文件

    在启动类加上

    @PropertySource({ "classpath:mail.properties" })

    四、添加MailConfig.java

    package com.spring.config;
    
    import java.io.File;
    import java.util.List;
    import java.util.Map;
    
    import javax.annotation.Resource;
    import javax.mail.MessagingException;
    import javax.mail.internet.MimeMessage;
    
    import org.springframework.beans.factory.annotation.Value;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.core.io.FileSystemResource;
    import org.springframework.mail.SimpleMailMessage;
    import org.springframework.mail.javamail.JavaMailSenderImpl;
    import org.springframework.mail.javamail.MimeMessageHelper;
    
    @Configuration
    public class MailConfig {
    
    	@Resource
    	private JavaMailSenderImpl mailSender;
    
    	@Value("${spring.mail.username}")
    	private String username;
    
    	/**
    	 * 发送纯文本形式的email
    	 *
    	 * @param toEmail 收件人邮箱
    	 * @param title   邮件标题
    	 * @param content 邮件内容
    	 */
    	public void sendTextMail(String toEmail, String title, String content) {
    		SimpleMailMessage msg = new SimpleMailMessage();
    		msg.setFrom(username);
    		msg.setTo(toEmail);
    		msg.setSubject(title);
    		msg.setText(content);
    		mailSender.send(msg);
    	}
    
    	/**
    	 * 发送带有html的内容
    	 *
    	 * @param toEmail     收件人邮箱
    	 * @param title       邮件标题
    	 * @param htmlContent 邮件内容
    	 */
    	public void sendHtmlMail(String toEmail, String title, String htmlContent) throws MessagingException {
    		MimeMessage msg = mailSender.createMimeMessage();
    		MimeMessageHelper helper = new MimeMessageHelper(msg, false, "utf-8");
    		helper.setFrom(username);
    		helper.setTo(toEmail);
    		helper.setSubject(title);
    		helper.setText(htmlContent, true);
    		mailSender.send(msg);
    	}
    
    	/**
    	 * 添加附件的email发送
    	 *
    	 * @param toEmail    收件人地址
    	 * @param title      邮件标题
    	 * @param content    文本内容
    	 * @param aboutFiles 附件信息 每个子项都是一个文件相关信息的map Map<String,String>: 1.filePath
    	 *                   2.fileName
    	 * @throws Exception 异常
    	 */
    	public void sendAttachmentMail(String toEmail, String title, String content, List<Map<String, String>> aboutFiles) throws Exception {
    		MimeMessage msg = mailSender.createMimeMessage();
    		MimeMessageHelper helper = new MimeMessageHelper(msg, true, "utf-8");
    		helper.setFrom(username);
    		helper.setTo(toEmail);
    		helper.setSubject(title);
    		helper.setText(content);
    		FileSystemResource resource = null;
    		for (Map<String, String> file : aboutFiles) {
    			resource = new FileSystemResource(file.get("filePath"));
    			if (resource.exists()) {// 是否存在资源
    				File attachmentFile = resource.getFile();
    				helper.addAttachment(file.get("fileName"), attachmentFile);
    			}
    		}
    		mailSender.send(msg);
    	}
    
    }
    
    

    五、使用MailConfig

    @Autowired
    private MailConfig mailConfig;

    使用MailConfig里面的方法发送即可

  • 相关阅读:
    java smtp 发送邮件
    Java 数据库连接配置
    kettle基础操作数据同步
    Java上传文件到服务器指定位置
    Java 操作word
    Java 导出Zip文件
    Java 遍历二叉树字符串
    一款基于vue.js 和node构建个人博客项目
    CSS选择器介绍和优先级
    CSS Position属性
  • 原文地址:https://www.cnblogs.com/mowen120/p/12013290.html
Copyright © 2011-2022 走看看