用于发送 SMTP 邮件的任务。
此任务可以使用纯文本、UU 编码或 MIME 格式邮件发送邮件,具体取决于可用性。
SMTP 身份验证和 SSL/TLS 需要 JavaMail 或 JakartaMail,并且仅在 MIME 格式下可用。
附件可以使用嵌套的 <attachments>
元素发送,这些元素是 路径状结构。这意味着任何基于文件系统的 资源 或资源集合都可以用来指向附件。在 Apache Ant 1.7 之前,只有 <fileset>
被支持作为嵌套元素,你仍然可以直接使用它,而无需 <attachments>
容器。
注意:此任务可能依赖于 Ant 分发版中未包含的外部库。有关更多信息,请参阅 库依赖项。
从 Ant 1.10.13 开始,Ant 支持现代的 jakarta.mail
以及旧的 javax.mail
实现,如果两者都可用,它将优先使用 jakarta.mail
。
属性 | 描述 | 必需 |
---|---|---|
from | 发件人的电子邮件地址。 | <from> 元素或 from 属性。 |
replyto | 回复地址。 | 否 |
tolist | 收件人列表,用逗号分隔。 | 至少需要其中一个,或等效的嵌套元素 |
cclist | 抄送收件人列表,用逗号分隔 | |
bcclist | 密件抄送收件人列表,用逗号分隔 | |
message | 要发送的邮件正文。 | 需要其中一个,或 <message> 元素。 |
messagefile | 作为邮件正文发送的文件。文件中的属性值将被扩展。 | |
messagefileinputencoding | 指定输入文件的编码。有关可能值的列表,请参阅 支持的编码。从 Ant 1.9.4 开始 | 否;默认为默认的 JVM 字符编码 |
messagemimetype | 邮件的 MIME 类型。 | 否;默认为 text/plain |
files | 作为邮件附件发送的文件。用逗号或空格分隔多个文件名。你也可以使用 <fileset> 元素来指定文件。 |
否 |
failonerror | 标志,指示是否在任何错误发生时停止构建。 | 否;默认为 true |
includefilenames | 在文件内容之前包含文件名。 | 否;默认为 false,除非使用 plain编码,否则会被忽略 |
mailhost | SMTP 服务器的主机名。 | 否;默认为 localhost |
mailport | SMTP 服务器的 TCP 端口。 | 否;默认为 25 |
user | SMTP 身份验证的用户名 | 是,如果你的 SMTP 服务器需要 SMTP 身份验证; 邮件将使用 MIME 发送,并且需要 JavaMail |
password | SMTP 身份验证的密码 | 是,如果你的 SMTP 服务器需要 SMTP 身份验证; 邮件将使用 MIME 发送,并且需要 JavaMail |
ssl | true、 on或 yes在这里被接受 指示你是否需要 TLS/SSL |
否 |
encoding | 指定用于邮件内容的编码。值可以是 mime、 uu、 plain或 auto。 uu或 plain与 SMTP 身份验证不兼容 |
否;默认为 auto |
charset | 邮件的字符集。 你也可以在 message 嵌套元素中设置 charset 。这些选项是互斥的。 |
否 |
subject | 邮件主题行。 | 否 |
ignoreInvalidRecipients | (布尔值) 任务是否应该尝试将邮件发送给尽可能多的收件人,并且只在没有收件人可达时才失败。从 Ant 1.8.0 开始。 | 否;默认为 false |
enableStartTLS | (布尔值) 是否应该支持用于切换到加密连接以进行身份验证的 STARTTLS 命令。需要 JavaMail。从 Ant 1.8.0 开始 |
否 |
从 Ant 1.6 开始,属性 from
、replyto
、tolist
、cclist
、bcclist
可以包含以下形式的电子邮件地址
你需要将尖括号输入为 XML 实体 >
和 <
。
添加一个电子邮件地址元素。它接受以下属性
属性 | 描述 | 必需 |
---|---|---|
name | 地址的显示名称。 | 否 |
address | 电子邮件地址。 | 是 |
指定要包含在邮件正文中的邮件。它接受以下属性
属性 | 描述 | 必需 |
---|---|---|
src | 用作邮件的文件。 | 否 |
mimetype | 用于邮件的 MIME 类型。 | 否 |
charset | 邮件的字符集 你也可以将 charset 设置为封闭的 mail 任务的属性。这些选项是互斥的。 |
否 |
inputencoding | 指定输入文件的编码。有关可能值的列表,请参阅 支持的编码。从 Ant 1.9.4 开始 | 否;默认为默认的 JVM 字符编码 |
如果未指定 src
属性,则可以在 <message>
元素内添加文本。属性扩展将在邮件中发生,无论它是作为外部文件指定还是作为 <message>
元素内的文本指定。
从 Ant 1.7 开始,可以通过在一个或多个嵌套的 header 元素上指定这些属性来添加任意邮件头
属性 | 描述 | 必需 |
---|---|---|
name | 与该邮件头关联的名称。 | 是 |
value | 要分配给该邮件头的值。 | 是 |
允许在多个头之间重复 name 属性。
从 me
发送一封邮件到 you
,主题为 夜间构建结果
,并将文件 build.log 的内容包含在邮件正文中。
<mail from="me" tolist="you" subject="Results of nightly build" files="build.log"/>
从 [email protected]
发送一封邮件到 [email protected]
,主题为 测试构建
。对这封邮件的回复将发送到 [email protected]
。来自 dist 目录的任何 zip 文件都将被附加。该任务将尝试使用 JavaMail,并根据可用支持类,依次回退到 UU 编码或无编码。 ${buildname} 将被替换为 buildname
属性的值。
<mail mailhost="smtp.myisp.com" mailport="1025" subject="Test build"> <from address="[email protected]"/> <replyto address="[email protected]"/> <to address="[email protected]"/> <message>The ${buildname} nightly build has completed</message> <attachments> <fileset dir="dist"> <include name="**/*.zip"/> </fileset> </attachments> </mail>
从 [email protected]
发送一封邮件到 [email protected]
,主题为 测试构建
,邮件正文使用 UTF-8 编码。
<property name="line2" value="some_international_message"/> <echo message="${line2}"/> <mail mailhost="[email protected]" mailport="25" subject="Test build" charset="utf-8"> <from address="[email protected]"/> <to address="[email protected]"/> <message>some international text:${line2}</message> </mail>