SpringBoot实现发送电子邮件

目录
  • 1. 前言
    • 1.1 电子邮件发展史
    • 1.2 电子邮件原理
    • 1.3 电子邮件地址的构成
    • 1.4 电子邮件传输协议
  • 2. 实现发送电子邮件
  • 3. 码农来洞见

1. 前言

电子邮件是—种用电子手段提供信息交换的通信方式,是互联网应用最广的服务。通过网络的电子邮件系统,用户可以非常快速的方式(几秒钟之内可以发送到世界上任何指定的目的地),与世界上任何一个角落的网络用户联系。从1969年10月世界上的第一封电子邮件发出,到2021年,已经过去将近半个世纪了。虽然即时通讯和视频会议变得日益普及,但电子邮件依然有着广泛的使用场景和不可撼动的历史地位。

1.1 电子邮件发展史

起源:1969年10月世界上的第一封电子邮件是由计算机科学家Leonard K.教授发给他的同事的一条简短消息。这条消息只有两个字母:“LO”。Leonard K.教授因此被称为电子邮件之父。
虽然电子邮件是在70年代发明的,它却是在80年才得以兴起。到90年代中期,互联网浏览器诞生,全球网民人数激增,电子邮件被广为使用。

1.2 电子邮件原理

电子邮件在Internet上发送和接收的原理可以很形象地用我们日常生活中邮寄包裹来形容:当我们要寄一个包裹时,我们首先要找到任何一个有这项业务的邮局,在填写完收件人姓名、地址等等之后包裹就寄出而到了收件人所在地的邮局,那么对方取包裹的时候就必须去这个邮局才能取出。同样的,当我们发送电子邮件时,这封邮件是由邮件发送服务器(任何一个都可以)发出,并根据收信人的地址判断对方的邮件接收服务器而将这封信发送到该服务器上,收信人要收取邮件也只能访问这个服务器才能完成。

1.3 电子邮件地址的构成

电子邮件地址的格式由三部分组成。第一部分“USER”代表用户信箱的账号,对于同一个邮件接收服务器来说,这个账号必须是唯一的;第二部分“@”是分隔符;第三部分是用户信箱的邮件接收服务器域名,用以标志其所在的位置。

用户标识符+@+域名

其中:@是“at”的符号,表示“在”的意思。

1.4 电子邮件传输协议

电子邮件需要在邮件客户端和邮件服务器之间,以及两个邮件服务器之间进行邮件传递,那就必须要遵守一定的规则,这个规则就是邮件传输协议。

下面我们分别简单介绍几种协议:

SMTP协议:全称为Simple Mail Transfer Protocol,简单邮件传输协议。它定义了邮件客户端软件和SMTP邮件服务器之间,以及两台SMTP邮件服务器之间的通信规则。
POP3协议:全称为Post Office Protocol,邮局协议。它定义了邮件客户端软件和POP3邮件服务器的通信规则。
IMAP协议:全称为 Internet Message Access Protocol,Internet消息访问协议,它是对POP3协议的一种扩展,也是定义了邮件客户端软件和IMAP邮件服务器的通信规则。

2. 实现发送电子邮件

Java在发明之初,就开始支持发送邮件,通过java mail包方式去操作邮件发送的内容和协议,但是,这种发送方式稍微比较复杂,需要配置各种参数、协议、内容,之后产生了Spring框架。Spring在java mail的基础上进行了一些封装,使发送邮件的过程的复杂大大减少。SpringBoot Mail在Spring Mail的基础上,再次进行一次封装,使得发送邮件的便利度上,更为简单。下面我们就开始SpringBoot实现发送邮件的编程之旅吧!

(1)准备帐号

注册发件邮箱并设置客户端授权码,这里以163免费邮箱为例:

(2)构建maven工程,添加邮件配置和依赖包

application.yml文件配置参数:

spring:
  mail:
      #邮箱配置
    host: smtp.163.com
    #邮箱地址
    username: manoninsight@163.com
    #SMTP授权密码
    password: LEDEYBCUHIIBXLPG
    properties:
      mail:
        smtp:
          socketFactory:
            class: javax.net.ssl.SSLSocketFactory
    default-encoding: utf-8

pom.xml依赖spring-boot-starter-mail模块:

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

(3)代码实现

@RestController
public class MailController {
    @Autowired
    JavaMailSenderImpl javaMailSender;
    @RequestMapping("/mail")
    public String sendMail(){
        SimpleMailMessage message = new SimpleMailMessage();
        //邮件发送
        message.setFrom("manoninsight@163.com");
        //邮件接收,多个帐号用逗号分割
        message.setTo("pps1208@126.com","420076360@qq.com");
        //邮件主题
        message.setSubject("公众号:码农洞见");
        //邮件内容
        message.setText("你好,我是码农洞见,欢迎大家关注!");
        javaMailSender.send(message);
        return "邮件发送demo!";
    }
}

(4)测试结果,收到了电子邮件:

3. 码农来洞见

电子邮件沟通的方式属于异步通信,与即时软件有所区别,即时软件盛行的当下,仍然有很多人喜欢使用电子邮件,究竟是什么原因呢?归结原因如下四点:

  • (1)电子邮件沟通具有仪式感,比如某些重要的活动邀请或者信息通知
  • (2)电子邮件沟通便于协作,发送电子邮件可以选择抄送、密送、群发等。
  • (3)电子邮件沟通记录可查询
  • (4)电子邮件沟通要求内容逻辑清晰,电子邮件一般不需要即时答复,让沟通的双方有思考的时间

最后,电子邮箱作为互联网早期出现的沟通工具,经过不断的迭代更新,与即时通讯工具之间已形成优劣互补,成为人们生活工作中必不可少的一部分。

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

(0)

相关推荐

  • springboot 使用QQ邮箱发送邮件的操作方法

    目录 一.QQ邮箱打开POP3/SMTP服务 二.springboot配置 一.QQ邮箱打开POP3/SMTP服务 上面的服务开启后,会得到一串授权密码在springboot配置中需要用到 二.springboot配置 IDE目录 1.在pom.xml添加spring-boot-starter-mail起步依赖 <!-- springboot开发mail项目的起步依赖--> <dependency> <groupId>org.springframework.boot&l

  • 详解Springboot中的异步、定时、邮件任务

    目录 一.异步任务 1.编写一个类AsyncService 2.编写一个AsyncController类 3.开启异步 二.邮件任务 1.引入依赖 2.配置mail 3.测试 三.定时任务 1.编写一个ScheduledService类 2.添加注解 一.异步任务 1.编写一个类AsyncService 异步处理还是非常常用的,比如我们在网站上发送邮件,后台会去发送邮件,此时前台会造成响应不动,直到邮件发送完毕,响应才会成功,所以我们一般会采用多线程的方式去处理这些任务. package com

  • SpringBoot QQ邮箱发送邮件实例代码

    目录 1.获取QQ邮箱授权码 2.导入邮箱发送依赖启动器 3.配置文件yml添加邮件服务配置 4.编写接口IMailService 5.编写实现MailServiceImpl 6.Controller调用 7.thymeleaf模板 mailTemplate.html 总结 SpringBoot整合邮件任务(QQ邮箱发送) 1.获取QQ邮箱授权码 2.导入邮箱发送依赖启动器 使用定制邮件模板的方法实现通用邮件发送,Thymeleaf构建邮件模板需要一起导入依赖. <!-- Mail --> &

  • 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实现发送邮件

    本文实例为大家分享了Springboot实现发送邮件功能的具体代码,供大家参考,具体内容如下 第一章 背景介绍 1.1 使用场景 1.注册验证: 2.网站营销: 3.安全的最后一道防线: 4.提醒.监控警告: 5.触发机制. 1.2 邮件发送原理 1.邮件传输协议:SMTP协议和POP3协议 2.内容不断发展:IMAP和Mme协议 1.3 邮件发送流程 第二章 使用SpringBoot完成邮件发送 2.1 开发流程 2.2 开发简单文本邮件 2.2.1 引入相关jar包 在pom.xml中添加依

  • SpringBoot整合Mail发送邮件功能

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

  • SpringBoot实现发送电子邮件

    目录 1. 前言 1.1 电子邮件发展史 1.2 电子邮件原理 1.3 电子邮件地址的构成 1.4 电子邮件传输协议 2. 实现发送电子邮件 3. 码农来洞见 1. 前言 电子邮件是—种用电子手段提供信息交换的通信方式,是互联网应用最广的服务.通过网络的电子邮件系统,用户可以非常快速的方式(几秒钟之内可以发送到世界上任何指定的目的地),与世界上任何一个角落的网络用户联系.从1969年10月世界上的第一封电子邮件发出,到2021年,已经过去将近半个世纪了.虽然即时通讯和视频会议变得日益普及,但电子

  • SpringBoot中发送QQ邮件功能的实现代码

    本文是vhr系列的第十二篇,项目地址 https://github.com/lenve/vhr 邮件发送也是一个老生常谈的问题了,代码虽然简单,但是许多小伙伴对过程不太理解,所以还是打算和各位小伙伴聊聊这个话题. 邮件协议 我们经常会听到各种各样的邮件协议,比如SMTP.POP3.IMAP,那么这些协议有什么作用,有什么区别?我们先来讨论一下这个问题. SMTP是一个基于TCP/IP的应用层协议,江湖地位有点类似于HTTP,SMTP服务器默认监听的端口号为25.看到这里,小伙伴们可能会想到既然S

  • 在Ruby中利用Net::SMTP类发送电子邮件的教程

    简单邮件传输协议(SMTP)发送电子邮件及路由的e-mail邮件服务器之间的协议处理. Ruby 提供 Net::SMTP 类的简单邮件传输协议(SMTP)客户端的连接,并提供了两个新的方法:new 和 start. new 带两个参数: server name 默认为 localhost port number  默认为熟知的 25 start 方法带有以下这些参数: server - IP SMTP服务器名称,默认为localhost port - 端口号,默认为25 domain - 邮件

  • Django应用程序中如何发送电子邮件详解

    前言 在Django应用程序中发送电子邮件最常见的用例是密码重置.帐户激活和发送与您的应用程序相关的一般通知.下面来看看详细的介绍吧. 配置Django发送电子邮件 要配置您的Django应用程序,添加下面的参数到你settings.py: # 主机 EMAIL_HOST = "smtp.sina.com" # 端口 EMAIL_PORT = 25 # 发件人邮箱 EMAIL_HOST_USER = "anshengme@sina.com" # 密码 EMAIL_H

  • Spring-boot JMS 发送消息慢的解决方法

    Spring-boot JMS 发送消息慢的问题解决 1.在<ActiveMQ 基于zookeeper的主从(levelDB Master/Slave)搭建以及Spring-boot下使用>中,采用以下代码进行JMS消息发送: @Service public class Producer { @Autowired private JmsMessagingTemplate jmsTemplate; public void sendMessage(Destination destination,

  • golang实现通过smtp发送电子邮件的方法

    本文实例讲述了golang实现通过smtp发送电子邮件的方法.分享给大家供大家参考,具体如下: 今天写了一个公司的邮件发送后台服务,php只需要把邮件存入数据库,然后golang写的mailservice就会吧邮件发送出去.这个公司的代码就不发出来的,以为带有公司的业务逻辑,我把代码整理了一下发布出来供大家参考.呵呵 复制代码 代码如下: package main import (     "fmt"     "net/mail"     "net/smt

  • 用Socket发送电子邮件(利用需要验证的SMTP服务器)

    <? *  名称:用Socket发送电子邮件 *  描述:本类实现了直接使用需要验证的SMTP服务器直接发送邮件,参考文章<用Socket发送电子邮件>作者:limodou *        此文章比较早,他是用不用验证SMTP服务器发送邮件,现在基本上SMTP服务器都需要验证了,所以这个文章里的类           意义也不是很大!同时参考了[RFC 1869]和PHP手册!!和上文还有不同的是我用的不是fsockopen()函数           具体你自己看吧!!我刚刚测试通过

  • 用Socket发送电子邮件

    用Socket发送电子邮件 在作者所申请的几个PHP 主页空间中,能够提供mail功能的实在不多,总是调用完mail()函数之后就毫 无下文了.但是电子邮件在网上生活中的作用越来越大.想一想网虫上网不收邮件能叫真正的网虫吗?邮件 的作用我不想再说了,但是如果主页空间不支持mail()发送那么怎么办呢?我也想过通过socket来实现邮件 发送,但无奈对用php 进行socket编程不熟悉,再加上发送邮件要用到SMTP协议,又要读不少的英文了,所 以一直也没有去研究过.终于有一天我发现了一篇文章,关

  • Asp.Net类库中发送电子邮件的代码

    通常验证电子邮件真实有效的办法是:当用户填写的注册资料经过网站初步格式验证之后,用户并不能利用此帐号登录,系统会向用户注册时填写的电子邮件地址发送一封电子邮件,邮件中给出一个链接,只有当用户点击了这个链接之后才能登录到网站,如果用户填写的电子邮件地址不是真实有效的或者不是他本人的,就不会收到这封电子邮件,这样仍然不能登录,这一步一般称之为电子邮件激活. 在.net类库中有两种发送电子邮件的方式,一种是在.net2.0以下版本中的做法,一种是.net2.0以上版本的做法.下面分别介绍这两种办法.

  • SpringBoot配置发送Email的示例代码

    本文介绍了SpringBoot配置发送Email,分享给大家,具体如下: 引入依赖 在 pom.xml 文件中引入邮件配置: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> </dependency> 配置文件 # JavaMailSender 邮件发送的配置 sprin

随机推荐