Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >spring + maven 实现发送邮件

spring + maven 实现发送邮件

作者头像
MickyInvQ
发布于 2020-09-27 09:12:29
发布于 2020-09-27 09:12:29
74310
代码可运行
举报
文章被收录于专栏:InvQ的专栏InvQ的专栏
运行总次数:0
代码可运行

前言

Java编程中发邮件也是常用的。但是原生的jdk自带的发送邮件用起来还是比较麻烦的。spring框架在Java语言中完全是神一样的存在,通过spring框架的邮件工具来发送邮件就非常方便了,本文就主要讲解了Java编程中利用spring提供的邮件工具来发送邮件。

编码实现发送邮件

1、首先我们需要一个Spring框架的环境 2、发送邮件需要的核心依赖包:spring-context-supportXXX.jar、activation-1.1.jar、javax.mail-1.5.2.jar 3、导入以上核心包到项目中

maven依赖配置如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<!-- mail and spring-context-support for send email -->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context-support</artifactId>
    <version>${spring.version}</version>
</dependency>

<dependency>
    <groupId>com.sun.mail</groupId>
    <artifactId>javax.mail</artifactId>
    <version>1.5.2</version>
</dependency>
<!-- /email -->

4、导入了上面的依赖我们就开始编写一个简单的email发送sample

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
package service;

import java.io.File;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeUtility;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.core.io.FileSystemResource;
import org.springframework.mail.javamail.JavaMailSenderImpl;
import org.springframework.mail.javamail.MimeMessageHelper;

public class EmailSample {
    /** 日志 **/
    private static final Log log = LogFactory.getLog(EmailSample.class);

    /**
     * 邮件测试工具类
     *
     * @param subject
     *            邮件主题
     * @param content
     *            HTML格式的邮件内容
     */
    public static void sendFileMail(String subject, String content) {
        JavaMailSenderImpl senderImpl = new JavaMailSenderImpl();
        // 设置自己登陆email的服务商提供的host
        senderImpl.setHost("smtp.126.com");
        // 设置自己登陆邮箱账号
        senderImpl.setUsername("test@126.com");
        // 邮箱密码
        senderImpl.setPassword("******");
        try {
            // 建立HTML邮件消息
            MimeMessage mailMessage = senderImpl.createMimeMessage();
            // true表示开始附件模式.如果邮件不需要附件设置成false即可
            MimeMessageHelper messageHelper = new MimeMessageHelper(
                    mailMessage, true, "utf-8");
            // 设置收信人的email地址
            messageHelper.setTo("111@qq.com");
            // 设置寄信人的email地址{与上面登陆的邮件一致}
            messageHelper.setFrom("test@126.com");
            // 设置邮件发送内容的主题
            messageHelper.setSubject(subject);
            // true 表示启动HTML格式的邮件
            messageHelper.setText("<html><title>这是一封邮件</title><body>"
                    + content + "</body></html>", true);
            // 如不需要附件,这里可以省略---------------------------------------START
            // 读取附件一
            FileSystemResource file1 = new FileSystemResource(new File(
                    "e:/test.jpg"));
            // 读取附件二
            FileSystemResource file2 = new FileSystemResource(new File(
                    "e:/测试.txt"));
            // 添加附件一
            messageHelper.addAttachment("test.jpg", file1);
            // 添加附件二
            // 附件名有中文可能出现乱码
            messageHelper
                    .addAttachment(MimeUtility.encodeWord("测试.txt"), file2);
            // 如不需要附件,这里可以省略------------------------------------------END
            // 发送邮件
            senderImpl.send(mailMessage);
            log.info("Email Send Success!");
        } catch (Exception e) {
            log.error("Email Send Error!" + e.getMessage());
        }

    }

    public static void main(String[] agrs) {
        // 注意测试需要修改您自己的邮件服务商host,登陆邮件用户,邮件密码,附件,收信人地址
        sendFileMail("测试邮件", "<H1>测试邮件标题</H1>");
    }
}

【注意事项】:运行main方法测试时候修改参数:服务商host、登陆用户、登陆密码、收信人地址、附件(不用附件可省略)

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018/04/19 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
1 条评论
热度
最新
大佬,更换依赖版本那里,go mod tidy 打成go tidy了,少了个mod
大佬,更换依赖版本那里,go mod tidy 打成go tidy了,少了个mod
回复回复点赞举报
推荐阅读
编辑精选文章
换一批
基于SSM的 spring 发送邮件的实现
由于考虑到项目中需要,如果程序出现异常或其它问题,可以发送邮件来及时提醒后台维护人员处理。所以目前考虑使用JavaMail来实现邮件发送!如下,是我整理的一些内容,做个笔记记录下:(当然,在这功能实现之前,需要搭建好ssm的基本框架!)
AI码真香
2022/09/13
5040
基于SSM的 spring 发送邮件的实现
Spring Boot实现邮件发送
引入jar包 <!--邮件发送功能依赖--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> </dependency> ---- 配置properties(yml) spring: mail: protocol: smtp #smtp是邮件发送协议
水煮麥楽雞
2022/11/20
3760
SpringBoot系列(十三)集成邮件服务以及邮件发送的几种方式
SMTP是一种提供可靠且有效的电子邮件传输的协议。SMTP是建立在FTP文件传输服务上的一种邮件服务,主要用于系统之间的邮件信息传递,并提供有关来信的通知。SMTP独立于特定的传输子系统,且只需要可靠有序的数据流信道支持,SMTP的重要特性之一是其能跨越网络传输邮件,即“SMTP邮件中继”。使用SMTP,可实现相同网络处理进程之间的邮件传输,也可通过中继器或网关实现某处理进程与其他网络之间的邮件传输。
全栈学习笔记
2022/03/31
8650
SpringBoot系列(十三)集成邮件服务以及邮件发送的几种方式
Spring发送邮件总结(附源码)
做项目用到自动发邮件功能,网上查阅很多没有给出特别详细的说明,需要自己去探索,做了很多弯路。
明明如月学长
2021/08/27
5780
Springboot 系列(十三)使用邮件服务
在我们这个时代,邮件服务不管是对于工作上的交流,还是平时的各种邮件通知,都是一个十分重要的存在。Java 从很早时候就可以通过 Java mail 支持邮件服务。Spring 更是对 Java mail 进行了进一步的封装,抽象出了 JavaMailSender. 后来随着 Springboot 的出现,理所当然的出现了 spring-boot-starter-mail. 不管怎么说,每次的封装都让使用变得越来越简单。
未读代码
2019/11/04
1.7K0
使用 Java 发送邮件
在我们的应用程序中有时需要给用户发送邮件,例如激活邮件、通知邮件等等。那么如何使用 Java 来给用户发送邮件呢?
宋先生
2019/07/18
2.4K0
SpringBoot 发送邮件和附件(实用版)
转载自简书 SpringBoot 发送邮件和附件(实用版)作者:yizhiwazi
Java团长
2019/11/11
2K0
SpringBoot 发送邮件和附件(实用版)
SpringBoot入门建站全系列(十)邮件发送功能
Spring Mail API都在org.springframework.mail及其子包org.springframework.mail.javamail中封装。
品茗IT
2019/08/13
7230
spring使用Email邮件系统
1.提供邮件信息发送接收,附件绑定功能. 1.配置spring-email.xml文件 <context:property-placeholder location="classpath:email.properties" ignore-unresolvable="true"/> <bean id="webEmailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl"> <property nam
Gxjun
2018/03/27
2.3K0
spring使用Email邮件系统
SpringBoot发送邮件
这是博主自己本地记在有道云的,现在都发出来,希望对你们有帮助哈。 话不多说,直接上代码~ 一、依赖 <!-- javax.mail --> <dependency> <groupId>com.sun.mail</groupId> <artifactId>javax.mail</artifactId> <version>1.6.0</version> </dependency> 二、邮箱配置 mail.smtp.auth=true mail.transport.protocol=smt
Java团长
2018/12/06
5590
Spring Boot – 通过 SMTP 发送电子邮件
Spring Boot提供了使用JavaMail库通过 SMTP 发送电子邮件的功能。在这里,我们将说明开发可用于发送带或不带附件的电子邮件的 Restful Web 服务的分步指南。为了开始执行这些步骤,我们首先使用 Spring Initializer 创建一个 Spring Boot 项目。
用户1418987
2023/10/26
7290
Spring Boot – 通过 SMTP 发送电子邮件
Spring发送电子邮件
Spring基于javax.mail封装了一套用于发送电子邮件的API,位于org.springframework.mail包下,下面将介绍下发送普通文本邮件和基于thymeleaf模版的邮件。
布禾
2020/10/29
1.9K0
Spring发送电子邮件
SpringBoot-19-之发送邮件
零、准备工作 <!--发送邮件的依赖--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> </dependency> spring: mail: host: smtp.126.com username: toly1994@126.com password: 你的密码--注意不是登陆密
张风捷特烈
2018/09/29
4390
SpringBoot-19-之发送邮件
Spring和Email整合详解
Spring Mail API都在org.springframework.mail及其子包org.springframework.mail.javamail中封装。
品茗IT
2019/09/12
1.1K0
SpringBoot拦截全局异常并发送邮件给指定邮箱
主要是看一下Springboot中发送邮件的方法,至于拦截Springboot全局异常之前的文章中有。
天涯泪小武
2019/01/17
1K0
结合Spring发送邮件的四种正确姿势,你知道几种?
测试使用的环境是企业主流的SSM 框架即 SpringMVC+Spring+Mybatis。为了节省时间,我直接使用的是我上次的“SSM项目中整合Echarts开发”该项目已经搭建完成的SSM环境。
用户2164320
2018/08/10
8960
结合Spring发送邮件的四种正确姿势,你知道几种?
SpringBoot发送邮件
开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 3 天,点击查看活动详情
zhaozhen
2023/02/19
6930
SpringBoot邮件发送
这篇文章介绍springboot的邮件发送。 由于很简单就没有分出server和imp之类,只是在controller简单写个方法进行测试。 首先pom文件加入spring-boot-starter-
dalaoyang
2018/04/28
1.3K0
SpringBoot邮件发送
springboot (七) 邮件发送功能
介绍springboot的邮件发送。 由于很简单就没有分出server和imp之类,只是在controller简单写个方法进行测试。 首先pom文件加入spring-boot-starter-mail
IT架构圈
2018/06/01
6430
Springboot发送邮件
Spring提供了非常好用的 JavaMailSender接口实现邮件发送。在Spring Boot的Starter模块中也为此提供了自动化配置。下面通过实例看看如何在Spring Boot中使用 JavaMailSender 发送邮件。
用户3467126
2019/07/03
8130
相关推荐
基于SSM的 spring 发送邮件的实现
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验