文档章节

学习SpringBoot 集成邮件发送(参考纯洁的微笑) 记录其中遇到的问题

夜中孤影
 夜中孤影
发布于 04/03 12:00
字数 494
阅读 8
收藏 0

1.pom里面,增加相关依赖包

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

2.application.properties里面,增加相关配置

#邮箱服务器地址
#spring.mail.host=smtp.qiye.163.com
spring.mail.host=smtp.163.com
#用户名
spring.mail.username=**********
#密码
spring.mail.password=********
spring.mail.default-encoding=UTF-8
spring.mail.port=25
#/以谁来发送邮件
mail.fromMail.addr=********

需要注意 

设置开启自己邮箱对应的服务

username与addr保持一致   

password不是邮箱的登录名,而是客户端的授权码

3.贴上代码

package com.example.demo.emilyServer;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.mail.MailException;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.stereotype.Component;

import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
import java.io.File;

@Component
public class TestEmilySend {
    @Autowired
    private JavaMailSender javaMailSender;

    private final Logger logger = LoggerFactory.getLogger(this.getClass());

    @Value("${mail.fromMail.addr}")
    private String from;


    /**
     *
     * @param to 接受邮箱
     * @param subject 标题
     * @param content 内容
     */
    public void sendMail(String to, String subject, String content){
        SimpleMailMessage simpleMailMessage = new SimpleMailMessage();//普通文本
        simpleMailMessage.setFrom(from);
        simpleMailMessage.setTo(to);
        simpleMailMessage.setSubject(subject);
        simpleMailMessage.setText(content);
        try {
            javaMailSender.send(simpleMailMessage);
            logger.info("邮件发送成功------------");
        } catch (MailException e) {
            e.printStackTrace();
            logger.error("邮件发送失败------------");
        }
    }


    /**
     * 发送html邮件
     * @param to
     * @param subject
     * @param content
     */
    public void sendMailByHtml(String to, String subject, String content){
        MimeMessage mimeMessage = javaMailSender.createMimeMessage();
        try {
            MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true);
            helper.setFrom(from);
            helper.setTo(to);
            helper.setText(content,true);
            helper.setSubject(subject);
            javaMailSender.send(mimeMessage);
            logger.info("发送成功-----------------");
        } catch (MessagingException e) {
            e.printStackTrace();
            logger.error("发送失败----------------");
        }

    }


    /**
     * 发送邮件携带附件
     */
    public void sendMailByFile(String to, String subject, String content, String filePath){
        MimeMessage message = javaMailSender.createMimeMessage();
        try {
            MimeMessageHelper helper = new MimeMessageHelper(message,true);
            helper.setSubject(subject);
            helper.setText(content);
            helper.setTo(to);
            helper.setFrom(from);
            File file = new File(filePath);
            helper.addAttachment("测试文档.docx",file);
            javaMailSender.send(message);
        } catch (MessagingException e) {
            e.printStackTrace();
        }
    }

    /**
     * 发送邮件,携带图片
     */
    public void sendMailByImage(String to, String subject, String content, String filePath,String image){
        MimeMessage message = javaMailSender.createMimeMessage();
        try {
            MimeMessageHelper helper = new MimeMessageHelper(message,true);
            helper.setSubject(subject);
            helper.setText(content);
            helper.setTo(to);
            helper.setFrom(from);
            File file = new File(filePath);
            helper.addAttachment("测试文档.docx",file);
            helper.addInline("测试图片",new File(image));
            javaMailSender.send(message);
        } catch (MessagingException e) {
            e.printStackTrace();
        }
    }
}

 

发送附件,邮件的时候,如果不成功,参看163的返回码查找原因

http://help.163.com/09/1224/17/5RAJ4LMH00753VB8.html

请勿有test等,会被当做垃圾邮件处理

本文转载自:http://www.ityouknow.com/spring-boot.html

夜中孤影

夜中孤影

粉丝 5
博文 13
码字总数 433
作品 0
其它
私信 提问
springboot系列 springcloud和springboot学习资料整理

springboot 作者 链接 springboot官网 https://spring.io/projects/spring-boot springboot官方文档 https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/ springboot官方......

yimingkeji
2018/12/02
184
0
搞懂分布式技术23:SpringBoot Kafka 整合使用

Spring Boot系列文章(一):SpringBoot Kafka 整合使用2018-01-05 ×文章目录 1. 前提 2. 创建项目 3. Kafka 设置 4. 运行 5. 关注我 6. 最后 前提 假设你了解过 SpringBoot 和 Kafka。 1、...

你的猫大哥
2018/07/05
0
0
[springboot](九)邮件服务

发送邮件应该是网站的必备功能之一,什么注册验证,忘记密码或者是给用户发送营销信息。最早期的时候我们会使用JavaMail相关api来写发送邮件的相关代码,后来spring退出了JavaMailSender更加...

菜鸟腾飞
2018/09/21
0
0
Docker+Prometheus+Grafana监控SpringBoot健康信息

在微服务体系当中,监控是必不可少的。当系统环境超过指定的阀值以后,需要提醒指定的运维人员或开发人员进行有效的防范,从而降低系统宕机的风险。在CNCF云计算平台中,Prometheus+Grafana是...

boonya
05/07
38
0
每日一博 | SpringBoot 集成 QQ、Gmail 等邮箱发送邮件

在Spring中提供了非常好用的JavaMailSender接口实现邮件发送,在SpringBoot的Starter模块中也为此提供了自动化配置。本文从原理出发,详细介绍了使用SpringBoot集成QQ、网易和Gmail邮箱进行邮...

h4cd
2018/09/03
199
0

没有更多内容

加载失败,请刷新页面

加载更多

rime设置为默认简体

转载 https://github.com/ModerRAS/ModerRAS.github.io/blob/master/_posts/2018-11-07-rime%E8%AE%BE%E7%BD%AE%E4%B8%BA%E9%BB%98%E8%AE%A4%E7%AE%80%E4%BD%93.md 写在开始 我的Arch Linux上......

zhenruyan
今天
5
0
简述TCP的流量控制与拥塞控制

1. TCP流量控制 流量控制就是让发送方的发送速率不要太快,要让接收方来的及接收。 原理是通过确认报文中窗口字段来控制发送方的发送速率,发送方的发送窗口大小不能超过接收方给出窗口大小。...

鏡花水月
今天
10
0
OSChina 周日乱弹 —— 别问,问就是没空

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @tom_tdhzz :#今日歌曲推荐# 分享容祖儿/彭羚的单曲《心淡》: 《心淡》- 容祖儿/彭羚 手机党少年们想听歌,请使劲儿戳(这里) @wqp0010 :周...

小小编辑
今天
1K
11
golang微服务框架go-micro 入门笔记2.1 micro工具之micro api

micro api micro 功能非常强大,本文将详细阐述micro api 命令行的功能 重要的事情说3次 本文全部代码https://idea.techidea8.com/open/idea.shtml?id=6 本文全部代码https://idea.techidea8....

非正式解决方案
今天
5
0
Spring Context 你真的懂了吗

今天介绍一下大家常见的一个单词 context 应该怎么去理解,正确的理解它有助于我们学习 spring 以及计算机系统中的其他知识。 1. context 是什么 我们经常在编程中见到 context 这个单词,当...

Java知其所以然
昨天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部