jakarta.mail(javax.mail)包中關于SMTP協議支持的屬性參數配置

一、程序屬性配置

NO.NameTypeDescription
1mail.smtp.userStringSMTP的默認用戶名。
2mail.smtp.hostString要連接的SMTP服務器。
3mail.smtp.portint如果 connect()方法未明確指定一個,則要連接的SMTP服務器端口。默認為25。
4mail.smtp.connectiontimeoutint套接字連接超時值(以毫秒為單位)。此超時由java.net.Socket實現。默認值為無限超時。
5mail.smtp.timeoutint套接字讀取超時值(以毫秒為單位)。此超時由java.net.Socket實現。默認值為無限超時。
6mail.smtp.writetimeoutint套接字寫入超時值(以毫秒為單位)。 此超時是通過每個連接使用java.util.concurrent.ScheduledExecutorService來實現的,該連接計劃在超時后調度線程以關閉套接字。 因此,使用此超時的開銷是每個連接一個線程。 默認值為無限超時。
7mail.smtp.fromStringSMTP MAIL命令使用的電子郵件地址。設置信封的返回地址。默認為 msg.getFrom() 或 InternetAddress.getLocalAddress() 。注意:以前曾使用過mail.smtp.user。
8mail.smtp.localhostStringSMTP HELO或EHLO命令中使用的本地主機名。默認為 InetAddress.getLocalHost().getHostName() 。如果您的JDK和名稱服務配置正確,通常不需要設置。
9mail.smtp.localaddressString創建SMTP套接字時要綁定的本地地址(主機名)。 默認為Socket class選擇的地址。 通常不需要設置,但對于選擇特定本地地址進行綁定的multi-homed主主機很有用。
10mail.smtp.localportint創建SMTP套接字時要綁定的本地端口號。默認為Socket類選擇的端口號。
11mail.smtp.ehloboolean如果為false,則不要嘗試使用EHLO命令登錄。 默認為true。 通常,EHLO命令的失敗將回退到HELO命令。 此屬性僅適用于未正確使EHLO失敗或未正確實現EHLO的服務器。
12mail.smtp.authboolean如果為true,請嘗試使用AUTH命令對用戶進行身份驗證。默認為false。
13mail.smtp.auth.mechanismsString如果已設置,則列出要考慮的身份驗證機制以及考慮它們的順序。 僅使用服務器支持和當前實現支持的機制。 默認值為“LOGIN PLAIN DIGEST-MD5 NTLM”,其中包括當前實現(除XOAUTH2之外)支持的所有身份驗證機制。
14mail.smtp.auth.login.disableboolean如果為true,則禁止使用AUTH LOGIN命令。默認為false。
15mail.smtp.auth.plain.disableboolean如果為true,則禁止使用AUTH PLAIN命令。默認為false。
16mail.smtp.auth.digest-md5.disableboolean如果為true,則禁止使用AUTH DIGEST-MD5命令。默認為false。
17mail.smtp.auth.ntlm.disableboolean如果為true,則禁止使用AUTH NTLM命令。默認為false。
18mail.smtp.auth.ntlm.domainStringNTLM身份驗證域。
19mail.smtp.auth.ntlm.flagsintNTLM協議特定的標志。有關詳細信息,請參見http://curl.haxx.se/rfc/ntlm.html#theNtlmFlags。
20mail.smtp.auth.xoauth2.disableboolean如果為true,則禁止使用AUTHENTICATE XOAUTH2命令。 由于OAuth 2.0協議需要特殊的訪問令牌而不是密碼,因此默認情況下會禁用此機制。 通過將此屬性顯式設置為“ false”或將“ mail.smtp.auth.mechanisms”屬性設置為“ XOAUTH2”,可以啟用它。
21mail.smtp.submitterString在MAIL FROM命令的AUTH標記中使用的提交者。 通常由郵件中繼用于傳遞有關郵件原始提交者的信息。 另請參見SMTPMessage的setSubmitter方法。 郵件客戶端通常不使用此功能。
22mail.smtp.dsn.notifyStringRCPT命令的NOTIFY選項。要么 NEVER,或SUCCESS, FAILURE, 和 DELAY 的某種組合(以逗號分隔)。
23mail.smtp.dsn.retStringMAIL命令的RET選項。要么 FULL 或 HDRS。
24mail.smtp.allow8bitmimeboolean如果設置為true,并且服務器支持8BITMIME擴展,則使用“quoted-printable”或“base64”編碼的郵件文本部分如果遵循RFC2045規則的8bit文本,則轉換為使用“8bit”編碼。
25mail.smtp.sendpartialboolean如果設置為true,并且一條消息具有一些有效和一些無效的地址,則無論如何都要發送該消息,并通過SendFailedException報告部分失敗。 如果設置為false(默認值),則在收件人地址無效的情況下,不會將郵件發送給任何收件人。
26mail.smtp.sasl.enableboolean如果設置為true,請嘗試使用javax.security.sasl包來選擇用于登錄的身份驗證機制。默認為false。
27mail.smtp.sasl.mechanismsString嘗試使用的用空格或逗號分隔的SASL機制名稱列表。
28mail.smtp.sasl.authorizationidString在SASL身份驗證中使用的授權ID。如果未設置,則使用身份驗證ID(用戶名)。
29mail.smtp.sasl.realmString與DIGEST-MD5身份驗證一起使用的領域。
30mail.smtp.sasl.usecanonicalhostnameboolean如果設置為true,則由InetAddress.getCanonicalHostName返回的規范主機名將傳遞到SASL機制,而不是用于連接的主機名。默認為false。
31mail.smtp.quitwaitboolean如果設置為false,則發送QUIT命令,并立即關閉連接。如果設置為true(默認值),則使傳輸等待對QUIT命令的響應。
32mail.smtp.quitonsessionrejectboolean如果設置為false(默認值),則在會話發起拒絕時不發送QUIT命令,并且連接立即關閉。如果設置為true,則使傳輸在關閉連接之前發送QUIT命令。
33mail.smtp.reportsuccessboolean如果設置為true,則使傳輸為每個成功的地址包括一個SMTPAddressSucceededException。 還要注意,這將導致從SMTPTransport的sendMessage方法拋出SendFailedException,即使所有地址正確并且消息已成功發送也是如此。
34mail.smtp.socketFactorySocketFactory如果設置為實現javax.net.SocketFactory接口的類,則該類將用于創建SMTP套接字。 請注意,這是類的實例,而不是名稱,必須使用put方法(而不是setProperty方法)進行設置。
35mail.smtp.socketFactory.classString如果設置,則指定實現javax.net.SocketFactory接口的類的名稱。此類將用于創建SMTP套接字。
36mail.smtp.socketFactory.fallbackboolean如果設置為true,則無法使用指定的套接字工廠類創建套接字,這將導致使用java.net.Socket類創建套接字。默認為true。
37mail.smtp.socketFactory.portint指定使用指定的套接字工廠時要連接的端口。如果未設置,將使用默認端口。
38mail.smtp.ssl.enableboolean如果設置為true,則默認情況下使用SSL連接并使用SSL端口。對于“smtp”協議,默認為false;對于“smtps”協議,默認為true。
39mail.smtp.ssl.checkserveridentityboolean如果設置為true,則檢查RFC 2595指定的服務器身份。這些基于服務器證書內容的附加檢查旨在防止中間人(man-in-the-middle)攻擊。默認為false。
40mail.smtp.ssl.trustString如果設置,并且未指定套接字工廠,則啟用MailSSLSocketFactory的使用。 如果設置為“ *”,則所有主機都是受信任的。 如果設置為以空格分隔的主機列表,則這些主機是可信任的。 否則,信任取決于服務器提供的證書。
41mail.smtp.ssl.socketFactorySSLSocketFactory如果設置為擴展javax.net.ssl.SSLSocketFactory類的類,則該類將用于創建SMTP SSL套接字。 請注意,這是類的實例,而不是名稱,必須使用put方法(而不是setProperty方法)進行設置。
42mail.smtp.ssl.socketFactory.classString如果設置,則指定擴展javax.net.ssl.SSLSocketFactory類的類的名稱。此類將用于創建SMTP SSL套接字。
43mail.smtp.ssl.socketFactory.portint指定使用指定的套接字工廠時要連接的端口。如果未設置,將使用默認端口。
44mail.smtp.ssl.protocolsstring指定將為SSL連接啟用的SSL協議。該屬性值是javax.net.ssl.SSLSocket.setEnabledProtocols方法可接受的標記的空格分隔列表。
45mail.smtp.ssl.ciphersuitesstring指定將為SSL連接啟用的SSL密碼套件。該屬性值是javax.net.ssl.SSLSocket.setEnabledCipherSuites方法可接受的標記的空格分隔列表。
46mail.smtp.starttls.enableboolean如果為true,則在發出任何登錄命令之前,允許使用STARTTLS命令(如果服務器支持)將連接切換到 TLS-protected 的連接。 如果服務器不支持STARTTLS,則在不使用TLS的情況下繼續連接。 如果不支持STARTTLS,請參閱mail.smtp.starttls.required屬性失敗。 請注意,必須配置適當的信任庫,以便客戶端信任服務器的證書。 默認為false。
47mail.smtp.starttls.requiredboolean如果為true,則要求使用STARTTLS命令。如果服務器不支持STARTTLS命令,或者該命令失敗,則connect方法將失敗。默認為false。
48mail.smtp.proxy.hoststring指定將用于連接到郵件服務器的HTTP Web代理服務器的主機名。
49mail.smtp.proxy.portstring指定HTTP Web代理服務器的端口號。默認為端口80。
50mail.smtp.proxy.userstring指定用于與HTTP Web代理服務器進行身份驗證的用戶名。默認情況下,不進行身份驗證。
51mail.smtp.proxy.passwordstring指定用于與HTTP Web代理服務器進行身份驗證的密碼。默認情況下,不進行身份驗證。
52mail.smtp.socks.hoststring指定將用于連接到郵件服務器的SOCKS5代理服務器的主機名。
53mail.smtp.socks.portstring指定SOCKS5代理服務器的端口號。僅當代理服務器未使用標準端口號1080時,才應使用此選項。
54mail.smtp.mailextensionString擴展字符串追加到MAIL命令。 擴展字符串可用于指定標準SMTP服務擴展以及特定于供應商的擴展。 通常,應用程序應使用SMTPTransport方法supportsExtension來驗證服務器是否支持所需的服務擴展。 請參閱RFC 1869和其他定義特定擴展名的RFC。
55mail.smtp.usersetboolean如果設置為true,則在isConnected方法中使用RSET命令而不是NOOP命令。在某些情況下,在執行許多NOOP命令后,sendmail的響應速度會很慢。使用RSET可以避免此sendmail問題。默認為false。
56mail.smtp.noop.strictboolean如果設置為true(默認值),則堅持使用NOOP命令的250響應代碼來指示成功。 isConnected方法使用NOOP命令來確定連接是否仍然有效。 一些較舊的服務器在成功時返回錯誤的響應代碼,一些服務器根本不執行NOOP命令,因此總是返回失敗代碼。 將此屬性設置為false可處理以這種方式損壞的服務器。 通常,當服務器超時連接時,它將發送421響應代碼,客戶端將其視為對它發出的下一個命令的響應。 超時連接時,某些服務器會發送錯誤的故障響應代碼。 處理以這種方式損壞的服務器時,請勿將此屬性設置為false。

二、日志參數配置

NO.Logger NameLogging LevelPurpose
1com.sun.mail.smtpCONFIGSMTPTransport的配置
2com.sun.mail.smtpFINE常規調試輸出
3com.sun.mail.smtp.protocolFINEST完整的協議跟蹤

引用原文:https://www.cnblogs.com/XingXiaoMeng/p/13531792.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/904090.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/904090.shtml
英文地址,請注明出處:http://en.pswp.cn/news/904090.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

《解鎖SCSS算術運算:構建靈動樣式的奧秘》

SCSS作為CSS預處理器,算術運算功能猶如一顆璀璨明珠,賦予我們動態計算樣式屬性值的強大能力,讓網頁樣式不再是一成不變的刻板呈現,而是能夠根據各種條件和需求靈動變化。 在SCSS的世界里,算術運算絕非孤立的存在&…

Java 入門篇

文章目錄 一、注釋1、單行注釋2、多行注釋3、文檔注釋 二、字面量注意 三、變量四、標識符 一、注釋 1、單行注釋 // 同 C992、多行注釋 /* 同 C89和 C99 等 */3、文檔注釋 /** 文檔注釋,其內容是可以提取到一個程序說明文檔中去的*/二、字面量 同 C 常量 注意…

PowerShell安裝Chocolatey

文章目錄 環境背景安裝參考 環境 Windows 11 專業版PowerShell 7.5.1.NET Framework 4.0Chocolatey v2.4.3 背景 Chocolatey是Windows上的包管理工具,有點類似于Linux的 yum 和 apt 命令。比如,PowerShell里默認沒有 grep 命令,則可以通過…

將Airtable導入NocoDB

將Airtable導入NocoDB 0. 前提條件1. 詳細步驟 NocoDB提供了一種簡化流程,可在幾分鐘內將您的Airtable數據庫無縫轉移到各種數據庫管理系統,包括MySQL、Postgres和SQLite。此功能特別適合希望將Airtable數據庫遷移到更強大且可擴展的數據庫管理系統中的用…

微軟發布了最新的開源推理模型套件“Phi-4-Reasoning

每周跟蹤AI熱點新聞動向和震撼發展 想要探索生成式人工智能的前沿進展嗎?訂閱我們的簡報,深入解析最新的技術突破、實際應用案例和未來的趨勢。與全球數同行一同,從行業內部的深度分析和實用指南中受益。不要錯過這個機會,成為AI領…

Elasticsearch入門速通01:核心概念與選型指南

一、Elasticsearch 是什么? 一句話定義: 開源分布式搜索引擎,擅長處理海量數據的實時存儲、搜索與分析,是ELK技術棧(ElasticsearchKibanaBeatsLogstash)的核心組件。 核心能力: 近實時搜索&…

【angular19】入門基礎教程(三):關于angular里面的響應式數據入門使用

三個框架,都有響應式數據的概念。在angular里面有專門的叫法,響應式數據叫信號,英文名signal。其他兩個框架式沒有專門的名字的,統稱為動態數據。這點可以說,angular還是太細了,細節值得點贊!! …

GitHub Actions 和 GitLab CI/CD 流水線設計

以下是關于 GitHub Actions 和 GitLab CI/CD 流水線設計 的基本知識總結: 一、核心概念對比 維度GitHub ActionsGitLab CI/CD配置方式YAML 文件(.github/workflows/*.yml).gitlab-ci.yml執行環境GitHub 托管 Runner / 自托管GitLab 共享 Runner / 自托管市場生態Actions Mar…

【網絡編程】HTTP(超文本傳輸協議)詳解

🦄個人主頁:修修修也 🎏所屬專欄:網絡編程 ??操作環境:Visual Studio 2022 目錄 📌HTTP定義 📌HTTP工作原理 1.客戶端發起請求: 2.服務器處理請求: 3.客戶端處理響應: 📌HTTP關鍵特性 🎏HTTP請求方法 &am…

Centos小白之在CentOS8.5中安裝Rabbitmq 3.10.8

注意事項 安裝以及運行等其他操作,要使用root賬號進行,否則會遇到很多麻煩的事情。 使用命令行進行遠程登錄 ssh root192.168.0.167 安裝make 執行安裝命令 yum -y install make gcc gcc-c kernel-devel m4 ncurses-devel openssl-devel這里有可能會…

SQL筆記——左連接、右連接、內連接

前言:總是忘記表連接的區別,在面試的時候也容易被問到,因此就好記性不如爛筆頭吧 集合運算 有并集、交集、差集 聯合查詢*(針對行合并的)* union為關鍵字,就是將兩個select的結果求并集(此時重…

LeetCode - 19.刪除鏈表的倒數第N個結點

目錄 題目 解法一 雙指針算法 核心思想 執行流程 具體例子 代碼 解法二 兩次遍歷法 核心思想 執行流程 具體例子 代碼 題目 19. 刪除鏈表的倒數第 N 個結點 - 力扣(LeetCode) 解法一 雙指針算法 核心思想 利用雙指針間隔固定距離(n1)&a…

C# 編程核心:控制流與方法調用詳解

在編程中,控制流和方法調用是構建程序邏輯的兩大基石。它們決定了代碼的執行順序和模塊化協作方式。本文將從基礎概念出發,結合代碼示例,深入解析這兩部分內容。 控制流:程序執行的指揮棒 控制流決定了代碼的執行路徑&#xff0…

Sentinel學習

sentinel是阿里巴巴研發的一款微服務組件,主要為用戶提供服務保護,包括限流熔斷等措施 (一)主要功能 流量控制(限流):比如限制1s內有多少請求能到達服務器,防止大量請求打崩服務器…

Linux中進程的屬性:進程優先級

一、優先級和進程優先級 1.1什么是優先級 優先級就是獲取某種資源的先后順序,比如打飯時排隊:排隊就是在確認優先級 1.2為什么要有優先級 本質上其實是目標資源相對于需求者來說比較少,如CPU,磁盤,顯示器&#xff…

基于LangChain 實現 Advanced RAG-后檢索優化(上)-Reranker

摘要 Advanced RAG 的后檢索優化,是指在檢索環節完成后、最終響應生成前,通過一系列策略與技術對檢索結果進行深度處理,旨在顯著提升生成內容的相關性與質量。在這些優化手段中,重排序優化(Reranker)作為核…

【云備份】熱點管理模塊

目錄 1.熱點管理文件的基本思路 2.熱點管理類的設計 3.熱點管理類的實現 1.熱點管理文件的基本思路 服務器端的熱點文件管理是對上傳的非熱點文件進行壓縮存儲,節省磁盤空間。 而熱點文件的判斷在于上傳的文件的最后一次訪問時間是否在熱點判斷時間之內。 實…

LeetCode 560. 和為 K 的子數組 | 前綴和與哈希表的巧妙應用

文章目錄 方法思路:前綴和 哈希表核心思想關鍵步驟 代碼實現復雜度分析示例解析總結 題目描述 給定一個整數數組 nums 和一個整數 k,請統計并返回該數組中和為 k 的子數組的數量。 子數組是數組中連續的非空元素序列。 示例 輸入:nums …

Windows配置grpc

Windows配置grpc 方法一1. 使用git下載grph下載速度慢可以使用國內鏡像1.1 更新子模塊 2. 使用Cmake進行編譯2.1 GUI編譯2.2 命令行直接編譯 3. 使用Visual Studio 生成解決方法 方法二1. 安裝 vcpkg3.配置vckg的環境變量2. 使用 vcpkg 安裝 gRPC3. 安裝 Protobuf4. 配置 CMake…

【算法基礎】快速排序算法 - JAVA

一、算法基礎 1.1 什么是快速排序 快速排序(Quick Sort)是一種高效的分治排序算法,由英國計算機科學家Tony Hoare于1960年提出。它的核心思想是: 選擇一個基準元素(pivot)將數組分成兩部分:小…