亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

java實(shí)現(xiàn)賬號(hào)登錄時(shí)發(fā)送郵件通知

 更新時(shí)間:2023年09月18日 09:50:08   作者:Java全棧開發(fā)工程師  
這篇文章主要為大家詳細(xì)介紹了java如何實(shí)現(xiàn)在賬號(hào)登錄時(shí)發(fā)送郵件通知的功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下

1、引言

今天在逛Spring官網(wǎng)的時(shí)候,不經(jīng)意間在SpringBoot2.5.9的特性中看到了發(fā)送郵件的功能。

上面的第二張圖片就是發(fā)送郵件的相關(guān)說明文檔的頁(yè)面截圖,在這個(gè)部分開頭就說了:

Spring框架提供了一個(gè)發(fā)送郵件的接口JavaMailSender,并且提供了提供了其自動(dòng)配置和starter模塊,聽著像是有一個(gè)專門的starter提供這個(gè)功能。

為了驗(yàn)證自己的猜測(cè),回到第一張圖的頁(yè)面,在依賴版本頁(yè)面通過Ctrl+F搜索一下是不是有名字帶mail的依賴。

通過mail關(guān)鍵字搜索到了14個(gè)匹配項(xiàng),最后果然找到了名為spring-boot-starter-mail的依賴

2、實(shí)現(xiàn)功能

接下來,就通過Springboot項(xiàng)目引入這個(gè)依賴,來實(shí)現(xiàn)經(jīng)常會(huì)用到的賬號(hào)登錄的郵箱提醒功能。

第一步:創(chuàng)建一個(gè)springboot項(xiàng)目,項(xiàng)目名為email

第二步:修改pom.xml,添加spring-boot-starter-mail的依賴

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.3.4.RELEASE</version>
        <relativePath/>
    </parent>
    <groupId>com.example</groupId>
    <artifactId>email</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <properties>
        <java.version>1.8</java.version>
        <lombok.version>1.18.22</lombok.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <!--lombok-->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>${lombok.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-mail</artifactId>
        </dependency>
    </dependencies>
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
</project>

第三步:根據(jù)官網(wǎng)提供的代碼進(jìn)行改進(jìn)

回到Springboot2.5.9特性的頁(yè)面,點(diǎn)擊reference documentation查看郵件的具體說明

點(diǎn)擊了上面的鏈接進(jìn)入了這個(gè)頁(yè)面,上面一大堆文字不用管,那個(gè)Liberary dependencies可以不用看,那個(gè)依賴加不加都不影響發(fā)送郵件。

在剛剛創(chuàng)建的項(xiàng)目的根目錄下創(chuàng)建controller包,新建一個(gè)LoginController類

package com.example.email.controller;
import com.example.email.config.EmailProperties;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
/**
 * @author heyunlin
 * @version 1.0
 */
@RestController
public class LoginController {
    private final JavaMailSender mailSender;
    @Autowired
    public LoginController(JavaMailSender mailSender) {
        this.mailSender = mailSender;
    }
    @GetMapping("/login")
    public String login(String username, String password) {
        // 定義日期格式
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH:mm:ss");
        try {
            if (password.equals("12345")) {
                MimeMessage message = mailSender.createMimeMessage();
                MimeMessageHelper helper = new MimeMessageHelper(message);
                helper.setFrom("xxx@163.com"); // 設(shè)置發(fā)送方的郵箱,這個(gè)郵箱要和配置文件里設(shè)置的username一致,否則會(huì)報(bào)錯(cuò)
                helper.setTo(""); // 設(shè)置接收方郵箱,發(fā)送方和接收方可以是同一個(gè)郵箱。
                helper.setText("您的賬號(hào)" + username + " " + LocalDateTime.now().format(formatter) + "在廣州登錄了。");
                mailSender.send(message);
                return "登錄成功";
            } else {
                return "登錄失敗,密碼不正確。";
            }
        } catch (MessagingException exception) {
            exception.printStackTrace();
            return "登錄失敗," + exception.getMessage();
        }
    }
}

然后在applicatiom.yml中配置

server:
  port: 8081
spring:
  mail:
    port: 25
    host: smtp.163.com    # 發(fā)送郵件的服務(wù)器地址
    default-encoding: UTF-8
    username: xxx@163.com # 你的郵箱
    password: xxx         # 這個(gè)是授權(quán)碼,不是郵箱的密碼,下面會(huì)介紹怎么去獲取

注意,這里的password需要登錄自己的郵箱,通過修改郵箱設(shè)置來獲取,會(huì)在下一個(gè)章節(jié)介紹。

這篇文章用的是網(wǎng)易郵箱,其他郵箱類似。這里配置的host是發(fā)送郵件的服務(wù)器地址,百度一下,這個(gè)pop是接收郵件的服務(wù)器,smtp是發(fā)送郵件的服務(wù)器。

3、獲取授權(quán)碼

如上圖所示,登錄郵箱之后,點(diǎn)擊【設(shè)置】跳轉(zhuǎn)到郵箱設(shè)置頁(yè)面。

開啟這兩個(gè)服務(wù)中的一個(gè)就可以了,因?yàn)橹恍枰冒l(fā)送郵件的功能,也就是是SMTP服務(wù)。

點(diǎn)擊開啟按鈕

接著點(diǎn)繼續(xù)開啟

使用微信掃描二維碼,會(huì)自動(dòng)打開發(fā)送短信的窗口,點(diǎn)發(fā)送就可以了,非常方便

發(fā)送短信之后,點(diǎn)擊我已發(fā)送,這時(shí)候會(huì)得到一個(gè)授權(quán)碼,因?yàn)椴┲饕呀?jīng)開啟過了,授權(quán)碼只會(huì)顯示一次,這次沒有顯示了。

4、測(cè)試發(fā)送郵件的功能

通過瀏覽器發(fā)送get請(qǐng)求,請(qǐng)求成功得到了響應(yīng)

郵箱也成功收到了郵件

以上就是java實(shí)現(xiàn)賬號(hào)登錄時(shí)發(fā)送郵件通知的詳細(xì)內(nèi)容,更多關(guān)于java郵件通知的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Java IO流 文件傳輸基礎(chǔ)

    Java IO流 文件傳輸基礎(chǔ)

    這篇文章主要介紹了Java IO流 文件傳輸基礎(chǔ)的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2016-07-07
  • java Arrays快速打印數(shù)組的數(shù)據(jù)元素列表案例

    java Arrays快速打印數(shù)組的數(shù)據(jù)元素列表案例

    這篇文章主要介紹了java Arrays快速打印數(shù)組的數(shù)據(jù)元素列表案例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-09-09
  • SpringBoot Actuator未授權(quán)訪問漏洞的排查和解決方法

    SpringBoot Actuator未授權(quán)訪問漏洞的排查和解決方法

    Spring Boot Actuator 是開發(fā)和管理生產(chǎn)級(jí) Spring Boot 應(yīng)用程序的重要工具,它可以幫助你確保應(yīng)用程序的穩(wěn)定性和性能,本文給大家介紹了SpringBoot Actuator未授權(quán)訪問漏洞的排查和解決方法,需要的朋友可以參考下
    2024-05-05
  • Springboot整合GuavaCache緩存過程解析

    Springboot整合GuavaCache緩存過程解析

    這篇文章主要介紹了springboot整合GuavaCache緩存過程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-02-02
  • Spring控制Bean加載順序的操作方法

    Spring控制Bean加載順序的操作方法

    正常情況下,Spring 容器加載 Bean 的順序是不確定的,那么我們?nèi)绻枰错樞蚣虞d Bean 時(shí)應(yīng)如何操作?本文將詳細(xì)講述我們?nèi)绾尾拍芸刂?nbsp;Bean 的加載順序,需要的朋友可以參考下
    2024-05-05
  • Java二維數(shù)組講解

    Java二維數(shù)組講解

    這篇文章主要詳細(xì)介紹了Java二維數(shù)組,文中有詳細(xì)的相關(guān)資料講解,感興趣的朋友可以參考一下
    2023-04-04
  • 解決springboot自定義注解AOP在controller上導(dǎo)致controller注入失敗問題

    解決springboot自定義注解AOP在controller上導(dǎo)致controller注入失敗問題

    這篇文章主要介紹了解決springboot自定義注解AOP在controller上導(dǎo)致controller注入失敗問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • 使用ClassFinal實(shí)現(xiàn)SpringBoot項(xiàng)目jar包加密的操作指南

    使用ClassFinal實(shí)現(xiàn)SpringBoot項(xiàng)目jar包加密的操作指南

    在實(shí)際開發(fā)中,保護(hù)項(xiàng)目的安全性和保密性是至關(guān)重要的,針對(duì)于 Spring Boot 項(xiàng)目,我們需要將 JAR 包進(jìn)行加密從而有效地防止未經(jīng)授權(quán)的訪問和修改,本文將介紹如何使用ClassFinal在 Spring Boot 項(xiàng)目中實(shí)現(xiàn) JAR 包加密,需要的朋友可以參考下
    2024-06-06
  • Spring容器獲取Bean的9種方式總結(jié)

    Spring容器獲取Bean的9種方式總結(jié)

    本文為大家整理匯總了常見的獲取Bean的方式,并提供一些優(yōu)劣分析,方便大家在使用到時(shí)有更好的選擇,同時(shí),也會(huì)為大家適當(dāng)?shù)钠占昂屯卣挂恍┫嚓P(guān)知識(shí),需要的可以參考一下
    2023-07-07
  • Java實(shí)現(xiàn)的上傳并壓縮圖片功能【可等比例壓縮或原尺寸壓縮】

    Java實(shí)現(xiàn)的上傳并壓縮圖片功能【可等比例壓縮或原尺寸壓縮】

    這篇文章主要介紹了Java實(shí)現(xiàn)的上傳并壓縮圖片功能,可實(shí)現(xiàn)圖片的等比例壓縮或原尺寸壓縮,涉及java文件讀寫、轉(zhuǎn)換、傳輸?shù)认嚓P(guān)操作技巧,需要的朋友可以參考下
    2018-07-07

最新評(píng)論