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 | カンマ区切りの受信者リスト。 | これら、または同等のネストされた要素の少なくとも1つ |
| 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 | (boolean) タスクは可能な限り多くの受信者にメッセージを送信しようとするべきであり、どちらにも到達できない場合にのみ失敗するべきかどうか。Ant 1.8.0以降。 | いいえ; デフォルトはfalse |
| enableStartTLS | (boolean) 認証のために暗号化された接続に切り替えるために使用されるSTARTTLSコマンドがサポートされるべきかどうか。JavaMailが必要です。Ant 1.8.0以降 |
いいえ |
Ant 1.6以降、属性from, replyto, tolist, cclist, bcclistは、次の形式のメールアドレスを含めることができます
山かっこは、XMLエンティティ>
および <
として入力する必要があります。
メールアドレス要素を追加します。次の属性があります
| 属性 | 説明 | 必須 |
|---|---|---|
| name | アドレスの表示名。 | いいえ |
| address | メールアドレス。 | はい |
メール本文に含めるメッセージを指定します。次の属性があります
| 属性 | 説明 | 必須 |
|---|---|---|
| src | メッセージとして使用するファイル。 | いいえ |
| mimetype | メッセージに使用するコンテンツタイプ。 | いいえ |
| charset | メッセージの文字セット 囲み mailタスクの属性としてcharsetを設定することもできます。これらのオプションは相互に排他的です。 |
いいえ |
| inputencoding | 入力ファイルのエンコーディングを指定します。可能な値のリストについては、サポートされているエンコーディングを参照してください。Ant 1.9.4以降 | いいえ; デフォルトはデフォルトのJVM文字エンコーディング |
src属性が指定されていない場合、<message>要素内にテキストを追加できます。プロパティ展開は、外部ファイルとして指定されているか、<message>要素内のテキストとして指定されているかにかかわらず、メッセージ内で発生します。
Ant 1.7以降、1つ以上のネストされたheader要素でこれらの属性を指定することで、任意のメールヘッダーを追加できます
| 属性 | 説明 | 必須 |
|---|---|---|
| name | このメールヘッダーに関連付けられた名前。 | はい |
| value | このメールヘッダーに割り当てる値。 | はい |
複数のヘッダー間でname属性を複製することは許可されています。
me
からyou
にメールを送信し、件名を夜間ビルドの結果
として、メッセージ本文にファイル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>