郵件

說明

用於傳送 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 訊息的內容類型。 否;預設為 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

新增一封電子郵件地址元素。它會使用下列屬性

屬性 說明 必要
名稱 地址的顯示名稱。
地址 電子郵件地址。

message

指定要包含在電子郵件主體中的訊息。它會使用下列屬性

屬性 說明 必要
src 用作訊息的檔案。
mimetype 用於訊息的內容類型。
charset 訊息的字元集
您也可以將 charset 設定為封裝 mail 工作的屬性。
這些選項是互斥的。
inputencoding 指定輸入檔案的編碼。請參閱 支援的編碼 以取得可能值的清單。自 Ant 1.9.4 起 否;預設為 JVM 預設字元編碼

如果未指定 src 屬性,則可以在 <message> 元素內新增文字。無論是指定為外部檔案或 <message> 元素內的文字,都會在訊息中進行屬性擴充。

標頭

自 Ant 1.7 起,可以在一個或多個巢狀標頭元素上指定這些屬性,以新增任意郵件標頭

屬性 說明 必要
名稱 與此郵件標頭相關聯的名稱。
要指定給此郵件標頭的值。

允許在多個標頭之間複製名稱屬性。

範例

傳送一封電子郵件給 ,主旨為 夜間建置結果,並在訊息主體中包含檔案 build.log 的內容。

<mail from="me"
      tolist="you"
      subject="Results of nightly build"
      files="build.log"/>

config@myisp.com 傳送一封電子郵件給 all@xyz.com,主旨為 測試建置。回覆此電子郵件將傳送至 me@myisp.com。來自 dist 目錄的任何 zip 檔案都會附加。此工作會嘗試使用 JavaMail,並依序降回 UU 編碼或不編碼,具體取決於有哪些支援類別可用。${buildname} 會替換為 buildname 屬性的值。

<mail mailhost="smtp.myisp.com" mailport="1025" subject="Test build">
  <from address="config@myisp.com"/>
  <replyto address="me@myisp.com"/>
  <to address="all@xyz.com"/>
  <message>The ${buildname} nightly build has completed</message>
  <attachments>
    <fileset dir="dist">
      <include name="**/*.zip"/>
    </fileset>
  </attachments>
</mail>

me@myisp.com 傳送一封電子郵件給 all@xyz.com,主旨為 測試建置,訊息主體使用 UTF-8 編碼。

<property name="line2" value="some_international_message"/>
<echo message="${line2}"/>

<mail mailhost="somehost@xyz.com" mailport="25" subject="Test build"  charset="utf-8">
  <from address="me@myist.com"/>
  <to address="all@xyz.com"/>
  <message>some international text:${line2}</message>
</mail>