最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

1、引言

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

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

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

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

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

2、實現(xiàn)功能

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

第一步:創(chuàng)建一個springboot項目,項目名為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)提供的代碼進行改進

回到Springboot2.5.9特性的頁面,點擊reference documentation查看郵件的具體說明

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

在剛剛創(chuàng)建的項目的根目錄下創(chuàng)建controller包,新建一個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ā)送方的郵箱,這個郵箱要和配置文件里設(shè)置的username一致,否則會報錯
                helper.setTo(""); // 設(shè)置接收方郵箱,發(fā)送方和接收方可以是同一個郵箱。
                helper.setText("您的賬號" + 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         # 這個是授權(quán)碼,不是郵箱的密碼,下面會介紹怎么去獲取

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

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

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

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

開啟這兩個服務(wù)中的一個就可以了,因為只需要用發(fā)送郵件的功能,也就是是SMTP服務(wù)。

點擊開啟按鈕

接著點繼續(xù)開啟

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

發(fā)送短信之后,點擊我已發(fā)送,這時候會得到一個授權(quán)碼,因為博主已經(jīng)開啟過了,授權(quán)碼只會顯示一次,這次沒有顯示了。

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

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

郵箱也成功收到了郵件

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

相關(guān)文章

  • 鴻蒙PC上搭建多語言開發(fā)環(huán)境Java/Python/Go/Rust配置完全指南

    鴻蒙PC上搭建多語言開發(fā)環(huán)境Java/Python/Go/Rust配置完全指南

    對于鴻蒙開發(fā)者而言,一個正確配置的開發(fā)環(huán)境是所有后續(xù)工作的基石,下面這篇文章主要介紹了鴻蒙PC上搭建多語言開發(fā)環(huán)境Java/Python/Go/Rust配置的相關(guān)資料,需要的朋友可以參考下
    2026-05-05
  • springboot 如何解決cross跨域請求的問題

    springboot 如何解決cross跨域請求的問題

    這篇文章主要介紹了springboot 如何解決cross跨域請求的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • 淺談SpringMVC HandlerInterceptor詭異問題排查

    淺談SpringMVC HandlerInterceptor詭異問題排查

    這篇文章主要介紹了淺談SpringMVC HandlerInterceptor詭異問題排查,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-05-05
  • 最新評論

    张家界市| 定边县| 长治县| 道孚县| 邵阳市| 永宁县| 昌吉市| 错那县| 巴塘县| 宜黄县| 平顺县| 东乡族自治县| 黑水县| 五莲县| 分宜县| 桐庐县| 广平县| 衡南县| 准格尔旗| 南和县| 商南县| 通山县| 社旗县| 绥芬河市| 牡丹江市| 八宿县| 张北县| 乐昌市| 天水市| 麟游县| 巢湖市| 兴化市| 惠东县| 同仁县| 吴桥县| 永新县| 张家界市| 临夏县| 临城县| 苏尼特右旗| 北宁市|