一、概述
mail是Ant内置任务,用于发送SMTP电子邮件。可以使用纯文本、UU编码或MIME格式发送邮件。SMTP身份验证和SSL/TLS需要JavaMail,并且只能使用MIME格式。可以使用嵌套的attachments元素发送附件,任何基于文件系统的资源或者资源集合都可以用来指向附件。ant1.7之前只支持fileset。此任务需要依赖包javax.mail-api.jar,如果java版本低于1.6还需要activation.jar。
二、属性
from:发送人电子邮件地址。
replyto:回复电子邮件地址。
tolist:逗号分隔的收件人列表。
cclist:逗号分隔的抄送收件人列表。
bcclist:逗号分隔的密送收件人列表。
message:要发送的邮件的正文。
messagefile:做为要发送的邮件的正文的文件,文件中的属性会被扩展。
messagemimetype:消息的内容类型,默认为text/plain。
files:做为邮件附件发送的文件,使用逗号或空格分隔多个文件名,还可以通过fileset指定。
failonerror:发生错误时是否停止构建,默认为true。
includefilenames:在文件内容之前是否包含文件名,只有使用plain编码时有效,默认为false。
mailhost:SMTP服务器主机名,默认为localhost。
mailport:SMTP服务器TCP端口,默认为25。
user:SMTP身份验证的用户名。如果SMTP服务器需要身份验证,并且使用MIME发送邮件,需要指定此属性,并且需要JavaMail依赖包。
password:SMTP身份验证的密码。如果SMTP服务器需要身份验证,并且使用MIME发送邮件,需要指定此属性,并且需要JavaMail依赖包。
ssl:是否需要TLS/SSL。
encoding:指定电子邮件内容的编码,可选值为mime、uu、plain或auto,默认为auto。uu和plain不支持SMTP身份验证。
charset:电子邮件的字符集。还可以在message嵌套元素中设置字符集。
subject:电子邮件标题。
ignoreInvalidRecipients:ant1.8起,是否尝试将邮件发送到尽可能多的人,只有在无法访问时才失败,默认为false。
enableStartTLS:STARTTLS命令是否用于切换到加密连接进行身份验证。
支持以下嵌套元素:
to/cc/bcc/from/replyto:添加一个电子邮件地址元素,具有以下属性:
name:地址显示的名字,不是必需的。
address:邮件地址。
message:指定邮件的正文。具有以下属性:
src:做为邮件正文的文件。
mimetype:消息的内容类型。
charset:电子邮件的字符集。
header:ant1.7起,通过嵌套一个或多个header元素来添加任意的邮件头,具有以下属性:
name:与邮件头关联的名称。
value:邮件头的值。
三、简单示例
<project>
<mail mailhost="smtp.qq.com" mailport="25" subject="build test"
user="${myaddress}" password="nzcyzwntityxcahc" ssl="true">
<from address="${myaddress}" />
<to address="${youraddress}"/>
<message>this is send by ant!</message>
<attachments>
<fileset dir=".">
<include name="*.xml"/>
</fileset>
</attachments>
</mail>
</project>