Groovy 使用 AntBuilder 邮件附加多个文件
Groovy Attach multiple files with AntBuilder mail
我有下面的代码。我的问题是我想发送零个(或更多)文件,但我不知道该怎么做。 Ant 要求您为您的文件集设置一个基本目录,但对于这种方法我不知道那会是什么。如何添加要附加的零个或多个文件的任意列表?
public void send(File[] files){
ant.mail (
from: "IMSBatch@vanguard.com",
tolist: to,
message: msg,
subject : subject,
mailhost: host,
messagemimetype: 'text/html'
){
attachments(){
fileset(dir: ????){
include(arbitrary list of files)
}
}
}
}
旁注,我 运行 遇到了一个错误,当我在 class 的其他地方有一个 setAttachments()
方法时,这段代码实际上被破坏了。我认为 Ant 或 Groovy 的名称与 AntBuilder 的 attachments
方法混淆了。
这样怎么样?
@Grab(group='org.apache.ant', module='ant-javamail', version='1.9.4')
@Grab(group='javax.activation', module='activation', version='1.1.1')
@Grab(group='javax.mail', module='mail', version='1.4.7')
@GrabConfig(systemClassLoader=true)
// ...
public void send(File[] files) {
String filesString = ""
for (int i = 0; i < files.size(); i++) {
filesString += f.canonicalPath
if (files.size() > 1 && i < files.size() -1)
filesString += ","
}
ant.mail(
from: "IMSBatch@vanguard.com",
tolist: to,
message: msg,
subject: subject,
mailhost: host,
messagemimetype: "text/html",
files: filesString
)
}
可能有一种 Groovier 填充方式filesString
,我愿意接受改进答案的建议。
我有下面的代码。我的问题是我想发送零个(或更多)文件,但我不知道该怎么做。 Ant 要求您为您的文件集设置一个基本目录,但对于这种方法我不知道那会是什么。如何添加要附加的零个或多个文件的任意列表?
public void send(File[] files){
ant.mail (
from: "IMSBatch@vanguard.com",
tolist: to,
message: msg,
subject : subject,
mailhost: host,
messagemimetype: 'text/html'
){
attachments(){
fileset(dir: ????){
include(arbitrary list of files)
}
}
}
}
旁注,我 运行 遇到了一个错误,当我在 class 的其他地方有一个 setAttachments()
方法时,这段代码实际上被破坏了。我认为 Ant 或 Groovy 的名称与 AntBuilder 的 attachments
方法混淆了。
这样怎么样?
@Grab(group='org.apache.ant', module='ant-javamail', version='1.9.4')
@Grab(group='javax.activation', module='activation', version='1.1.1')
@Grab(group='javax.mail', module='mail', version='1.4.7')
@GrabConfig(systemClassLoader=true)
// ...
public void send(File[] files) {
String filesString = ""
for (int i = 0; i < files.size(); i++) {
filesString += f.canonicalPath
if (files.size() > 1 && i < files.size() -1)
filesString += ","
}
ant.mail(
from: "IMSBatch@vanguard.com",
tolist: to,
message: msg,
subject: subject,
mailhost: host,
messagemimetype: "text/html",
files: filesString
)
}
可能有一种 Groovier 填充方式filesString
,我愿意接受改进答案的建议。