Spring Boot通過企業郵箱發郵件被Gmail退回的問題解決方法

来源:https://www.cnblogs.com/didispace/archive/2023/08/23/17651978.html
-Advertisement-
Play Games

這兩天給我們開發的Chrome插件:[Youtube中文配音](https://youtube-dubbing.com/)增加了賬戶註冊和登錄功能,其中有一步是郵箱驗證,所以這邊會在Spring Boot後臺給用戶的郵箱發個驗證信息。如果發郵件,之前的文章教程里就有,這裡就不說了,著重說說這兩天發現 ...


這兩天給我們開發的Chrome插件:Youtube中文配音增加了賬戶註冊和登錄功能,其中有一步是郵箱驗證,所以這邊會在Spring Boot後臺給用戶的郵箱發個驗證信息。如果發郵件,之前的文章教程里就有,這裡就不說了,著重說說這兩天發現所有用Gmail註冊的用戶都被退件的問題。

報錯現象

先來看看具體報錯(如果您也碰到這種情況,那麼可以看看後面的內容):

退信原因:發件人([email protected])功能變數名稱的DNS記錄未設置或設置錯誤導致對方拒收此郵件。
host gmail-smtp-in.l.google.com[142.251.10.26] said: 550-5.7.26 This mail is unauthenticated, which poses a security risk to the sender and Gmail users, and has been blocked. The sender must authenticate with at least one of SPF or DKIM. For this message, DKIM checks did not pass and SPF check for [mail.spring4all.com] did not pass with ip: [54.204.34.130]. The sender should visit https://support.google.com/mail/answer/81126#authentication for instructions on setting up authentication. k191-20020a636fc8000000b00565bcd33890si6279798pgc.848 - gsmtp (in reply to end of DATA command)
解決方案:請通知你的郵箱管理員為郵箱功能變數名稱設置正確的DNS(SPF、DKIM、DMARC)記錄。詳細請見 http://service.exmail.qq.com/cgi-bin/help?subtype=1&&no=1000580&&id=20012

問題分析

從退信原因中Google給的鏈接內容非常多,大致內容就是Google針對垃圾郵件濫用郵箱等行為做的防護機制。所以,如果您要支持Gmail的話,就必須符合它所制定的身份配置要求,裡面包含了:SPF配置、DKIM配置、ARC配置以及DMARC配置。

Google官方提供了一個工具:https://toolbox.googleapps.com/apps/checkmx/,可以用來檢測你的一些列配置是否符合要求。您只需要輸入你的郵箱功能變數名稱,就可以看到如下的診斷結果:

那麼多警告,顯然是要慢慢解決才能不被拒收吧。。。不過那麼多配置,是不是一下就暈了?

如果你懶得深入看的話,下麵DD就講一下比較快速的解決不被拒收的配置。

解決方案

不要看有那麼多警告和配置內容,其實只需要把SPF配置完成,Gmail的發送就不成問題了。配置方法也很簡單,就是在功能變數名稱解析裡加一條記錄即可。

Gmail官網也給出了介紹:

但第一次也許你會跟我犯一樣的錯,就是直接用v=spf1 include:_spf.google.com ~all這個value了。。。其實應該要修改成你所用企業郵箱服務商的spf功能變數名稱。

比如,DD這邊用的是騰訊的企業郵箱,所以值要設置成:v=spf1 include:spf.mail.qq.com ~all。直觀的講,你的功能變數名稱解析里需要有這樣一條TXT記錄:

SPF彙總

這邊彙總一下,國內比較常用的企業郵箱SPF配置,如果您正好碰到類似問題,可以直接選取使用:

  • 騰訊企業郵箱:v=spf1 include:spf.mail.qq.com ~all
  • 阿裡企業郵箱:v=spf1 include:spf.mxhichina.com -all
  • 網易企業郵箱:v=spf1 include:spf.163.com -all

今天的分享就到這裡,希望對您有所收穫!碼字不易,歡迎關註、收藏、分享,支持一下。本文可以任意轉載,但請註明原文鏈接 _

歡迎關註我的公眾號:程式猿DD。第一時間瞭解前沿行業消息、分享深度技術乾貨、獲取優質學習資源


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 伴隨物流行業的迅猛發展,一體化供應鏈模式的落地,對系統吞吐、系統穩定發出巨大挑戰,庫存作為供應鏈的重中之重表現更為明顯。 ...
  • ### 歡迎訪問我的GitHub > 這裡分類和彙總了欣宸的全部原創(含配套源碼):[https://github.com/zq2599/blog_demos](https://github.com/zq2599/blog_demos) ### 本篇概覽 - 本篇是《java與es8實戰》系列的第二 ...
  • —併發包— 大型企業開發才用,我Java學得差不多以後再來學,主要是有點難,沒學泛型與集合… 練手的ConcurrentHashMap: import java.util.HashMap;import java.util.Hashtable;import java.util.concurrent.C ...
  • [toc] ## 1.自定義枚舉類 ```java public enum ReturnCode { RC200(200, "ok"), RC400(400, "請求失敗,參數錯誤,請檢查後重試。"), RC404(404, "未找到您請求的資源。"), RC405(405, "請求方式錯誤,請檢查 ...
  • **若項目中使用了@MapperScan註解後,則@Mapper註解不再生效**, 原因是:@MapperScan註解 會執行@Import(MapperScannerRegistrar.class),而MapperScannerRegistrar又會註冊MapperScannerConfigure ...
  • 前言:這篇文章分享的實操案例對於外貿從業者特別有用,並分享了一款免費可用的瀏覽器插件進行如何批量獲客。 做外貿需要找客戶成交,外貿業務員成單的前提是就是找到國外客戶。 外貿找客戶的方法無外乎兩種: - 第一種是主動出擊 - 第二種是提前佈局,也就是有預謀有計劃有目標的等待客戶上鉤。 前者最常見的方式 ...
  • 一、過濾器 1.什麼是過濾器? 過濾器是一種用於JavaWeb應用程式中的組件,它可以攔截HTTP請求和響應,以實現一些特定的功能。 過濾器可以對請求和響應進行修改,可以阻止請求進入Servlet,也可以修改響應返回給客戶端。 2.過濾器的主要作用 登錄驗證:檢查用戶是否已經登錄,如果沒有登錄則跳轉 ...
  • Goroutine 是 Golang 協程的實現。相比於其他語言,Goroutine 更加輕量,更加簡單。Goroutine 是學習 Golang 必須掌握的知識。本文介紹 Goroutine 的基礎知識,包含 基礎語法使用和 Channel。 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...