邮件

描述

用于发送 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 trueonyes 在这里被接受
指示你是否需要 TLS/SSL
encoding 指定用于邮件内容的编码。值可以是 mimeuuplainautouuplain 与 SMTP 身份验证不兼容 否;默认为 auto
charset 邮件的字符集。
你也可以在 message 嵌套元素中设置 charset
这些选项是互斥的。
subject 邮件主题行。
ignoreInvalidRecipients (布尔值) 任务是否应该尝试将邮件发送给尽可能多的收件人,并且只在没有收件人可达时才失败。从 Ant 1.8.0 开始 否;默认为 false
enableStartTLS (布尔值) 是否应该支持用于切换到加密连接以进行身份验证的 STARTTLS 命令。需要 JavaMail。从 Ant 1.8.0 开始

关于包含电子邮件地址的属性的说明

从 Ant 1.6 开始,属性 fromreplytotolistcclistbcclist 可以包含以下形式的电子邮件地址

你需要将尖括号输入为 XML 实体 &gt;&lt;

作为嵌套元素指定的参数

to / cc / bcc / from/ replyto

添加一个电子邮件地址元素。它接受以下属性

属性 描述 必需
name 地址的显示名称。
address 电子邮件地址。

message

指定要包含在邮件正文中的邮件。它接受以下属性

属性 描述 必需
src 用作邮件的文件。
mimetype 用于邮件的 MIME 类型。
charset 邮件的字符集
你也可以将 charset 设置为封闭的 mail 任务的属性。
这些选项是互斥的。
inputencoding 指定输入文件的编码。有关可能值的列表,请参阅 支持的编码从 Ant 1.9.4 开始 否;默认为默认的 JVM 字符编码

如果未指定 src 属性,则可以在 <message> 元素内添加文本。属性扩展将在邮件中发生,无论它是作为外部文件指定还是作为 <message> 元素内的文本指定。

header

从 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>