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.mzph.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)将数组分成两部分:小…