springboot 整合邮件发送功能

 pom依赖

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-mail</artifactId>
    </dependency>

代码实现

import org.springframework.core.io.FileSystemResource;
import org.springframework.mail.javamail.MimeMessageHelper;

import javax.mail.Authenticator;
import javax.mail.PasswordAuthentication;
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.Properties;

public class Email {
    /**
     * 发送邮件
     */
    private static Boolean sendMail() throws Exception {
        try {
            // 获取系统属性
            Properties properties = System.getProperties();
            properties.setProperty("mail.smtp.host", "smtp.163.com");// 设置邮件服务器
            properties.setProperty("mail.smtp.auth", "true");// 打开认证
            properties.setProperty("mail.smtp.port", "25"); //设置端口
            properties.setProperty("mail.debug", "false"); // 是否打印日志
            properties.setProperty("mail.smtp.connectiontimeout", "15000");//SMTP服务器连接超时时间
            properties.setProperty("mail.smtp.timeout", "60000");//发送邮件超时时间
            //设置密码需要实现抽象类Authenticator 重写 getPasswordAuthentication方法 原方法返回null
//            AuthenticatorCheck authenticatorCheck = new AuthenticatorCheck("gaoph_dcits@163.com", "VKGHGACJBXFMURWZ");
            Authenticator authenticatorCheck = new Authenticator() {
                @Override
                public PasswordAuthentication getPasswordAuthentication() {
                    return new PasswordAuthentication("gaoph_dcits@163.com", "VKGHGACJBXFMURWZ");
                }
            };
            Session session = Session.getDefaultInstance(properties, authenticatorCheck);
            MimeMessage message = new MimeMessage(session);
            MimeMessageHelper messageHelper = new MimeMessageHelper(message, true, "UTF-8");
            messageHelper.setFrom(new InternetAddress("gaoph_dcits@163.com", "央行流动性邮件发送服务", "UTF-8"));
            messageHelper.setTo(new String[]{"m18110024862@163.com"});
            messageHelper.setSubject("提醒");
            messageHelper.setText("我去,hahh......" +
                    "<p style=\"color:#F00\">这是红色</p>" +
                    "<span style=\"font-size:24px\">设置span内字体大小为24px</span>" +
                    "<p><img src=\"data:image/png;base64,/9j/4AAQSkZJRgABAQEASABIAAD/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAJiAmIDASIAAhEBAxEB/8QAHAABAAEFAQEAAAAAAAAAAAAAAAYCAwQFBwEI/8QASxAAAQMCAwQHBgMGBAQFAwUAAQACAwQRBRIhBjFBUQcTImFxgZEUMqGxwdEjQlIVM2Jy4fAkU4KSFjRD8VRjk6KyCCY1RHODwtL/xAAbAQEAAgMBAQAAAAAAAAAAAAAAAwQBAgUGB//EADURAAICAQMDAgMGBgIDAQAAAAABAgMRBBIhBTFBE1EiMmEUcYGRsfAGI1KhwdEVM0JD4fH/2gAMAwEAAhEDEQA/APp1ERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREARHENaS4gAakngsamr6WqkcyCZr3t1ICjlbCElGUkm+y9/uMqLaykZKIikMBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAERYeLYnR4TSOqsQnbDCNATqXHkBxKN4MpZ4RmKmWRkTc0r2xt5vIaPiuO7U9KM87n0+D5qaO9s7BmlI+Tf71UDmr6vEawS1HWTSHQGomLvuswrtt5qg2bSVdf8A2zSPo6THsIjeGPxOia47h1zfurjMYwx5AZiNE4ncBO37r53lZWPsQKQW/m+a19Y/EcoAhpXuB35iLhb/AGXVf0GvraX+s+pWODwCwhwO4tN16vlihkqHuBn9opJgdHMf2fUFTrZ3bbFcJIZNUur6X/LqDdw/lfvHndV5ynU8WxaJo1RsWapJnbUWj2c2owzH25aOUsqALuglFngcxzHeFvFummsohcXF4YREWTAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREBpdqZnMpYommwkcc3eBwUap5nQVkUsfvMcD4rebWE9fTDhkcfitNh5jjxGnfMQIw8FxI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IiAIiIAiIgCIiAIiIAiIgCIiAIiIAiIgCIiAIiIAiIgCIiAIiIAiIgCIiAIiIAiIgCIiAIiIAiIgCIiAIiIAiIgCIiAIiIAiIgCIiAIiIAiIgCIiAIiIAiIgCIiAIiIAiLX4++SPCpjFvNgTe1gTqodRcqKpWtZ2pv8AI2hHfJR9zOZIx5cGPa4jeAb2VSgNNI+F+eJ7mOHFpst7R7QBoDKxhJ/Wz6hcLRfxHRdxetj/ADRdt0E4cw5JCis01VBVMzQSteO46jyV5ehhOM1ug8ootNPDCIi2MBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAViupmVlK+GTQO3HkeBV9FpZCNkXCaymZi3F5RB6uhqaJwE8dmk2Dhq0+ax3Nvqp+9jXsLXtDmkWIO4rT1mAxSEupn9Uf0nVq8brf4bshzpnuXs+/8ApnVq18XxZwRaN7onh8bi143EGxCluAYi6ticyYjr495A94c1GKyB9NM+KUASN32N1mbOSFmLRjg8Ob8L/Rc/pGpt0esjU3hN4a/t+aZPqq421OXtyTBERfRThBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBa/F8SZQRAAB07h2W/U9yz5Htjjc95s1oJJ7goHW1DquqkmfvcdByHALh9c6m9FUo1/PLt9F7/6Lmj06ulmXZFuWR0j3PebucSSeaz9nWF+LQkC4YC4+Fv6rWqX7P4f7JT9bK208g1B/KOAXk+jaWeq1cZeIvLf3f7Olq7FXU178G1REX0g4IREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREARF6gPF7Y8j6LmG2O21RJVS0WDSGGCMlj52+88jflPAd+8qGHEK1z8zqyqLr3uZnfdcq7qtdctsVko2a6EXhLJ9AouJUW0+L0kgMWJTvt+WV2dp8QV0TZLa+DHJfZJojDWhmbf2JLb8vHvsptP1Gq6W3sySrVwseOzJSiIr5aCIiAIiIDDxnN+yqrLvyFQhT+piE9PLE7c9paoJUwSU0zopm2e3f3968X/FNUvUhbjjGPx7nW6dJbXHyZeCOpmV7X1bsrW6svuzd6mbXBzQ5pDmnUEG91zwi4WbhGJS0NQxrnk05PbZwtzCq9F6zDRfyLI/C338/j9CTV6R2/HF8rwTdEBBFwbg8UXvjihERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBYeNCQ4NXiF2WXqJMp5HKVmIQDoRcHQjmsSWU0YaysHzmNw8FvNlNnZtoqqeOOojp44AC9zhmJvusFh49h0mGYxWUj2kdVIculrtOrT6WWz6PMSbhu1MDZLiKqHUOsdxJ7J9QPVeQohFXKFq4zhnAhFKxRs7ZJK7oyjAHVYo/NbXPCCL+RW12U2LZgmIGsmqhUytaWxgMyht9536m2il6L0sNBRCSnGPK+87EdLVBppBERWywEREAREQBYuIUEFcy0ze0B2XjeFlIo7aoXQcLFlM2jJxeYvkh2J4RNRNMgIkhvbMNCPELVu3LoNTC2op5IZPde2xUDnidDM+KQWew5SvA9d6XDRTjKpfBL+z/f+TtaPUO1NS7oluztV7RhjGk9uL8M/T4LZqE4PWOoqsObcscLPbzCmVNMyogZLEbsduuvTdC6hHVaeNcn8cVh/cvP78nP1lDrm5Lsy4iIu4UwiIgCIiAIiIAiIgCIiAIiIAiIgCIiAIiIAiIgCIiAIiIAiIgCIiAIiIAiIgCIiAIiIAiIgCIiAIiIAiIgCIiAIiIAiIgCIiAIiIAiIgCIiAomlZBC+WZ4ZGxpc5x3ADeVyPaXbWvxKeSOglfSUV7NDDZ7xzcd48ApB0qYwYaaHCoXDNMOtm/lB7I8yL+S5g92XxXB6nrJb/RreMdzl63UNPZFmWHueC6V7nOPFxubLCe4ibNESHA3aW778LKS7ObH4jj8HtLXMpaQ6NklBOe3IDeO9TTZnYCDCq6OsrakVcserGCPKxrv1G++yqU6G67DSwn5KsNNbdjC49yXYWZ3YZSOrP8AmTEwy3Fu1YX08Vkoi9QlhYO6lhYCIiyZCIiAIiIAiIgC0e0GFunPtNO3NIBZ7B+Ycx3reIqus0desqdNnZ/2fuSVWyqluic/khljF5IpGDddzSFKNlg4Yc7NexkOW/gFuDqLHUd6LldO6EtDf6ynnjGMf/SzfrHdDY1gIiLvlIIiIAiIgCIiAIiIAiIgCIiAIiIAiIgCIiAIiIAiIgCIiAIiIAiIgCIiAIiIAiIgCIiAIiIAiIgCIiAIiIAiIgCIiAIiIAiIgCIiAIiIAiIgOMdIry/a+tBdcNEbR3dgafFavAMIlxvFIaOEEBxzPf8AoYN5/viurbU7I0mPSCcSGmrAADK1uYPHJw4+Kz9ncAo8BpTFSNLpH26yZ/vPP0HcuE+mzs1DlP5W8/8Aw5j0cp2ty7Gxo6aKjpYaanYGQxNDGN5AK6iLuJJLCOmljhBERZAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAEREAREQBERAf/9k=\"/></p>" +
                    "<p><a href=\"https://sm.ms/image/tKWY2SMsq5Vg4ZD\" target=\"_blank\"><img src=\"https://s2.loli.net/2021/12/20/tKWY2SMsq5Vg4ZD.jpg\" ></a></p>" +
                    "<br/><a href=\"https://www.baidu.com\">百度</a> ", true);

            FileSystemResource fileSystemResource = new FileSystemResource(new File("D:\\order.xlsx"));
            // 设置附件
            messageHelper.addAttachment("11.xlsx", fileSystemResource);
            FileSystemResource image = new FileSystemResource(new File("C:\\Users\\ext.hanyang3\\Pictures\\Camera Roll\\22.jpg"));
            // 设置内联图片
            messageHelper.addInline("22.jpg", image);
            Transport.send(message);
            // 插入邮件记录
        } catch (Exception e) {
            // 插入异常邮件记录
            // 发送异常邮件
            throw e;
        }
        return true;
    }

    public static void main(String[] args) throws Exception {

        Email.sendMail();
    }
}

Session常用函数

下面的表格中列出了Session常用的方法。包括获取Transport、Stored对象等

public static getInstance(java.util.Properties)

public static getInstance(java.util.Properties ,Authenticator)                                                                                                                                                                                 

获取Session对象的方法,由于Session的构造方法是私有的因此只能通过静态方法获取

public static getDefalutInstance(java.util.Properties)

public static getDefaultInstance(Properties ,Authenticator)

getTransport()

getTransport(java.lang.String protocol) 默认根据mail.transport.protocol属性中的协议创建。

返回实现了指定的具体邮件发送协议的Transport对象。Transport是抽象类,两个方法返回的都是实现某种协议的Transport的子类

getStore()

getStore(java.lang.String protocol) 默认根据mail.store.protocol属性中的协议创建接收邮件对象。

返回实现了指定具体邮件接收协议的Store对象。Store也是抽象类,两个方法返回的都是实现某种协议的Store的子类

setDebug(boolean debug) 当设置为true时,JavaMail AP就会将其运行过程和邮件服务器的交互命令信息输出到运行窗口中,用于JavaMail的调试有用。

PS:getInstance和getDefaultInstance方法的区别在于:getDefaultInstance方法返回一个Session对象后,将这个Session对象安装为默认的Session对象,

以后每次调用getDefaultInstance方法都将返回这个默认Session对象;而getInstance方法则是每次调用都返回一个新的Session对象。

参数Properties

    对Properties类中可以通过setProperty(String key, String value)方法进行设置,其取值包括 :

参数Authenticator

    在JavaMail中除了可以通过Transport.connect(host, user, passqord)方法在连接SMTP服务器是直接传递用户认证信息还可以借助Authenticator类来 获取用户认证信息

    当使用Session的getInstance(properties, Authenticator)来创建Session对象时,会将Authenticator对象注册到该Session。以后这个Session对象的JavaMail客户端程序要向邮件服务器提交认证信息时,将调用该Session对象中注册的Authenticator对象,从中获取用户认证信息后传递给邮件服务器。

    Authenticator类最常用的一个方法是:

    protected PasswordAuthentication getPasswordAuthentication();

Authenticator类是抽象类,传递给getInstance方法的Authenticator对象只能是其子类的实例对象。Authenticator对定义的该方法的返回值为null,因此其子类必须覆盖该方法,由邮件开发人来实现。

    PasswordAuthentication类中的方法有:

public PasswordAuthentication(String userName, String password)

public String getUserName();

public String getPassword();

到此这篇关于springboot 整合邮件发送功能的文章就介绍到这了,更多相关springboot 整合邮件发送内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Springboot实现邮件发送功能

    本文实例为大家分享了Springboot实现邮件发送具体代码,供大家参考,具体内容如下 需求:用户注册账号绑定邮箱之后,下次登录时忘记密码,需要通过邮箱找回密码 1.创建springboot项目 2.pom导入依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> </depen

  • SpringBoot实现邮件发送功能的姿势分享

    目录 前言 I. 项目环境 1. 项目依赖 2. 配置 II. 邮件发送 1. 简单文本邮件发送 2. html发送 3. 添加附件 4. Freemaker模板 5. 测试与小结 III. 不能错过的源码和相关知识点 0. 项目 总结 前言 邮件发送,在实际的项目开发中,可能用的不是特别多,如果没有特定的需求,相信也没有多少小伙伴会特意的去关注,那么如果现在我们希望针对项目做一个异常的报警系统,当出现异常的时候,可以向指定的小伙伴发送邮件提醒,那么让我们来实现这个功能,可以怎么办呢? 这里介绍

  • Springboot整合实现邮件发送的原理详解

    目录 开发前准备 基础知识 进阶知识 加入依赖 配置邮件 测试邮件发送 通常在实际项目中,也有其他很多地方会用到邮件发送,比如通过邮件注册账户/找回密码,通过邮件发送订阅信息等等.SpringBoot集成邮件服务非常简单,通过简单的学习即可快速掌握邮件业务类的核心逻辑和企业邮件的日常服务 开发前准备 首先注册发件邮箱并设置客户端授权码,这里以QQ 免费邮箱为例,其他的邮箱的配置也大同小异. 登录 QQ 邮箱,点击设置->账户,开启IMAP/SMTP服务,并生成授权码. 基础知识 电子邮件需要在邮

  • springboot 整合邮件发送功能

     pom依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> </dependency> 代码实现 import org.springframework.core.io.FileSystemResource; import org.springframework.mail

  • SpringBoot整合Mail发送邮件功能

    目录 前言 Maven依赖 使用QQ邮箱演示 发送普通邮件 验证码案例 前言 我们在网站上注册账号的时候一般需要获取验证码,而这个验证码一般发送在你的手机号上还有的是发送在你的邮箱中,注册,账号密码-都需要用到验证,今天就演示一下如何用SpringBoot整合Mail发送邮箱. Maven依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-st

  • PHP利用PHPMailer实现邮件发送功能

    目录 导语 一.安装环境 二.下载 三. 邮箱设置 四.php发送邮件 五.php框架中使用 导语 〝 古人学问遗无力,少壮功夫老始成 〞 随着企业化的管理越来越规范,各种项目管理系统中,都需要加入到邮件实时通知功能,所以在项目中如何整合发邮件功能,其实是很重要的一点.如果这篇文章能给你带来一点帮助,希望给飞兔小哥哥一键三连,表示支持,谢谢各位小伙伴们. 一.安装环境 PHPMailer 需要 PHP 的 sockets 扩展支持 另外登录 QQ 邮箱 SMTP 服务器则必须通过 SSL 加密的

  • 利用Node.JS实现邮件发送功能

    第一步.配置篇 首先需要安装nodemailer库 npm install nodemailer//默认会安装最新的版本. 关于这个库的文档参见nodemailer 第二步.库的一些使用介绍 这个库使用方法很简单的.首先是要创建一个用于发送邮件的实例 var transporter = nodemailer.createTransport(transport[, defaults]) transport参数属性 属性太多了就只写一些关键的属性 port:连接的端口号,一般就是465 host:你

  • 深入Lumisoft.NET组件与.NET API实现邮件发送功能的对比分析

    我在另一篇文章<深入Lumisoft.NET实现邮件发送功能的方法详解>有大致对这个Lumisoft.NET组件的使用进行了介绍,当然Lumisoft.NET组件除了提供邮件发送功能外,还提供了邮件接收等功能的处理(包括基于POP3协议和IMAP协议),而.NET则除了提供SMTP协议功能外,则没有提供POP3协议处理的相关类库,因此收取邮件这需要自己进行封装(需要也可以参考codeproject.com上的相关文章). 1..NET的邮件发送功能实现.NET本身封装了一个SmtpClient

  • python实现SMTP邮件发送功能

    一直想着给框架添加邮件发送功能.所以整理下python下邮件发送功能 首先python是支持邮件的发送.内置smtp库.支持发送纯文本.HTML及添加附件的邮件.之后是邮箱.像163.qq.新浪等邮箱默认关闭SMTP服务,需要我们手动打开,打开后通过发件人邮箱.授权密码 通过发件人的SMTP服务发送 代码如下: #!/usr/bin/env python # -*- coding: utf_8 -*- from email.mime.text import MIMEText from email

  • Android实现带附件的邮件发送功能

    本文实例讲解了基于基于JMail实现Android邮件发送功能,分享给大家供大家参考,具体内容如下 在android上发送邮件方式: 第一种:借助GMail APP客户端,缺点是必须使用GMail帐号,有一点是比较方便,不需要写很多代码,但是不是很灵活. 第二种:基于JMail实现,可以很灵活的自己设置各种属性,不需要GMail帐号 在第二种方式的实现之前,看一下JMail对EMail结构的划分: 基于SMTP协议发送EMail,所以客户端必须要知道SMTP的主机. 腾讯邮件的SMTP主机为:s

  • Spring Boot实现邮件发送功能

    本文实例为大家分享了Spring Boot邮件发送功能的具体代码,供大家参考,具体内容如下 1.引入依赖 <!-- mail依赖 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> </dependency> 2.参数配置 在application.pro

随机推荐