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

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

 更新時(shí)間:2023年09月18日 09:50:08   作者:Java全棧開(kāi)發(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)說(shuō)明文檔的頁(yè)面截圖,在這個(gè)部分開(kāi)頭就說(shuō)了:

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

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

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

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

接下來(lái),就通過(guò)Springboot項(xiàng)目引入這個(gè)依賴,來(lái)實(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查看郵件的具體說(shuō)明

點(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需要登錄自己的郵箱,通過(guò)修改郵箱設(shè)置來(lái)獲取,會(huì)在下一個(gè)章節(jié)介紹。

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

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

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

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

點(diǎn)擊開(kāi)啟按鈕

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

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

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

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

通過(guò)瀏覽器發(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)文章

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

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

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

    springboot 如何解決cross跨域請(qǐng)求的問(wèn)題

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

    淺談SpringMVC HandlerInterceptor詭異問(wèn)題排查

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

    柯坪县| 双牌县| 吉隆县| 汶川县| 宝山区| 泗水县| 上栗县| 澄江县| 搜索| 文昌市| 万山特区| 阿克| 高平市| 收藏| 军事| 客服| 准格尔旗| 崇明县| 梓潼县| 北票市| 五台县| 廉江市| 肇东市| 司法| 福鼎市| 铁岭市| 兴仁县| 峡江县| 荃湾区| 衢州市| 咸丰县| 临漳县| 宁安市| 龙海市| 宁乡县| 甘德县| 鸡泽县| 固镇县| 突泉县| 大足县| 正安县|