|
|
@@ -36,6 +36,7 @@ import org.apache.tools.ant.taskdefs.email.Message; |
|
|
|
import org.apache.tools.ant.taskdefs.email.Mailer; |
|
|
|
import org.apache.tools.ant.util.ClasspathUtils; |
|
|
|
import org.apache.tools.ant.util.DateUtils; |
|
|
|
import org.apache.tools.ant.util.FileUtils; |
|
|
|
import org.apache.tools.ant.util.StringUtils; |
|
|
|
import org.apache.tools.mail.MailMessage; |
|
|
|
|
|
|
@@ -70,6 +71,8 @@ public class MailLogger extends DefaultLogger { |
|
|
|
/** Buffer in which the message is constructed prior to sending */ |
|
|
|
private StringBuffer buffer = new StringBuffer(); |
|
|
|
|
|
|
|
private static final String DEFAULT_MIME_TYPE = "text/plain"; |
|
|
|
|
|
|
|
/** |
|
|
|
* Sends an e-mail with the log results. |
|
|
|
* |
|
|
@@ -93,13 +96,7 @@ public class MailLogger extends DefaultLogger { |
|
|
|
} catch (IOException ioe) { |
|
|
|
// ignore because properties file is not required |
|
|
|
} finally { |
|
|
|
if (is != null) { |
|
|
|
try { |
|
|
|
is.close(); |
|
|
|
} catch (IOException e) { |
|
|
|
// ignore |
|
|
|
} |
|
|
|
} |
|
|
|
FileUtils.close(is); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
@@ -132,6 +129,8 @@ public class MailLogger extends DefaultLogger { |
|
|
|
.from(getValue(properties, "from", null)) |
|
|
|
.replytoList(getValue(properties, "replyto", "")) |
|
|
|
.toList(getValue(properties, prefix + ".to", null)) |
|
|
|
.mimeType(getValue(properties, "mimeType", DEFAULT_MIME_TYPE)) |
|
|
|
.charset(getValue(properties, "charset", "")) |
|
|
|
.subject(getValue( |
|
|
|
properties, prefix + ".subject", |
|
|
|
(success) ? "Build Success" : "Build Failure")); |
|
|
@@ -222,6 +221,22 @@ public class MailLogger extends DefaultLogger { |
|
|
|
this.subject = subject; |
|
|
|
return this; |
|
|
|
} |
|
|
|
private String charset; |
|
|
|
public String charset() { |
|
|
|
return charset; |
|
|
|
} |
|
|
|
public Values charset(String charset) { |
|
|
|
this.charset = charset; |
|
|
|
return this; |
|
|
|
} |
|
|
|
private String mimeType; |
|
|
|
public String mimeType() { |
|
|
|
return mimeType; |
|
|
|
} |
|
|
|
public Values mimeType(String mimeType) { |
|
|
|
this.mimeType = mimeType; |
|
|
|
return this; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
@@ -289,6 +304,13 @@ public class MailLogger extends DefaultLogger { |
|
|
|
|
|
|
|
mailMessage.setSubject(values.subject()); |
|
|
|
|
|
|
|
if (values.charset().length() > 0) { |
|
|
|
mailMessage.setHeader("Content-Type", values.mimeType() |
|
|
|
+ "; charset=\"" + values.charset() + "\""); |
|
|
|
} else { |
|
|
|
mailMessage.setHeader("Content-Type", values.mimeType()); |
|
|
|
} |
|
|
|
|
|
|
|
PrintStream ps = mailMessage.getPrintStream(); |
|
|
|
ps.println(message); |
|
|
|
|
|
|
@@ -301,7 +323,6 @@ public class MailLogger extends DefaultLogger { |
|
|
|
* @param message mail body |
|
|
|
*/ |
|
|
|
private void sendMimeMail(Project project, Values values, String message) { |
|
|
|
// convert the replyTo string into a vector of emailaddresses |
|
|
|
Mailer mailer = null; |
|
|
|
try { |
|
|
|
mailer = (Mailer) ClasspathUtils.newInstance( |
|
|
@@ -312,6 +333,7 @@ public class MailLogger extends DefaultLogger { |
|
|
|
log("Failed to initialise MIME mail: " + t.getMessage()); |
|
|
|
return; |
|
|
|
} |
|
|
|
// convert the replyTo string into a vector of emailaddresses |
|
|
|
Vector replyToList = vectorizeEmailAddresses(values.replytoList()); |
|
|
|
mailer.setHost(values.mailhost()); |
|
|
|
mailer.setPort(values.port()); |
|
|
@@ -320,6 +342,10 @@ public class MailLogger extends DefaultLogger { |
|
|
|
mailer.setSSL(values.ssl()); |
|
|
|
Message mymessage = new Message(message); |
|
|
|
mymessage.setProject(project); |
|
|
|
mymessage.setMimeType(values.mimeType()); |
|
|
|
if (values.charset().length() > 0) { |
|
|
|
mymessage.setCharset(values.charset()); |
|
|
|
} |
|
|
|
mailer.setMessage(mymessage); |
|
|
|
mailer.setFrom(new EmailAddress(values.from())); |
|
|
|
mailer.setReplyToList(replyToList); |
|
|
|