用於傳送 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 | 在此接受 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 實體 >
和 <
作為尖括號。
新增一封電子郵件地址元素。它會使用下列屬性
屬性 | 說明 | 必要 |
---|---|---|
名稱 | 地址的顯示名稱。 | 否 |
地址 | 電子郵件地址。 | 是 |
指定要包含在電子郵件主體中的訊息。它會使用下列屬性
屬性 | 說明 | 必要 |
---|---|---|
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>