diff options
Diffstat (limited to 'framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/taskdefs/email/Mailer.java')
-rw-r--r-- | framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/taskdefs/email/Mailer.java | 277 |
1 files changed, 277 insertions, 0 deletions
diff --git a/framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/taskdefs/email/Mailer.java b/framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/taskdefs/email/Mailer.java new file mode 100644 index 00000000..4aaa9823 --- /dev/null +++ b/framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/taskdefs/email/Mailer.java @@ -0,0 +1,277 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package org.apache.tools.ant.taskdefs.email; + +import java.io.File; +import java.util.Vector; + +import org.apache.tools.ant.BuildException; +import org.apache.tools.ant.Task; +import org.apache.tools.ant.util.DateUtils; + +/** + * Base class for the various emailing implementations. + * + * @since Ant 1.5 + */ +public abstract class Mailer { + // CheckStyle:VisibilityModifier OFF - bc + protected String host = null; + protected int port = -1; + protected String user = null; + protected String password = null; + // CheckStyle:MemberNameCheck OFF - bc + protected boolean SSL = false; + // CheckStyle:MemberNameCheck ON + protected Message message; + protected EmailAddress from; + protected Vector<EmailAddress> replyToList = null; + protected Vector<EmailAddress> toList = null; + protected Vector<EmailAddress> ccList = null; + protected Vector<EmailAddress> bccList = null; + protected Vector<File> files = null; + protected String subject = null; + protected Task task; + protected boolean includeFileNames = false; + protected Vector<Header> headers = null; + // CheckStyle:VisibilityModifier ON + private boolean ignoreInvalidRecipients = false; + private boolean starttls = false; + private boolean portExplicitlySpecified = false; + + /** + * Set the mail server. + * + * @param host the mail server name. + */ + public void setHost(String host) { + this.host = host; + } + + /** + * Set the smtp port. + * + * @param port the SMTP port. + */ + public void setPort(int port) { + this.port = port; + } + + /** + * Whether the port has been explicitly specified by the user. + * @since Ant 1.8.2 + */ + public void setPortExplicitlySpecified(boolean explicit) { + portExplicitlySpecified = explicit; + } + + /** + * Whether the port has been explicitly specified by the user. + * @since Ant 1.8.2 + */ + protected boolean isPortExplicitlySpecified() { + return portExplicitlySpecified; + } + + /** + * Set the user for smtp auth. + * + * @param user the username. + * @since Ant 1.6 + */ + public void setUser(String user) { + this.user = user; + } + + /** + * Set the password for smtp auth. + * + * @param password the authentication password. + * @since Ant 1.6 + */ + public void setPassword(String password) { + this.password = password; + } + + /** + * Set whether to send the mail through SSL. + * + * @param ssl if true use SSL transport. + * @since Ant 1.6 + */ + public void setSSL(boolean ssl) { + this.SSL = ssl; + } + + /** + * Set whether to allow authentication to switch to a TLS + * connection via STARTTLS. + * @param b boolean; if true STARTTLS will be supported. + * @since Ant 1.8.0 + */ + public void setEnableStartTLS(boolean b) { + this.starttls = b; + } + + protected boolean isStartTLSEnabled() { + return starttls; + } + + /** + * Set the message. + * + * @param m the message content. + */ + public void setMessage(Message m) { + this.message = m; + } + + /** + * Set the address to send from. + * + * @param from the sender. + */ + public void setFrom(EmailAddress from) { + this.from = from; + } + + /** + * Set the replyto addresses. + * + * @param list a vector of reployTo addresses. + * @since Ant 1.6 + */ + public void setReplyToList(Vector<EmailAddress> list) { + this.replyToList = list; + } + + /** + * Set the to addresses. + * + * @param list a vector of recipient addresses. + */ + public void setToList(Vector<EmailAddress> list) { + this.toList = list; + } + + /** + * Set the cc addresses. + * + * @param list a vector of cc addresses. + */ + public void setCcList(Vector<EmailAddress> list) { + this.ccList = list; + } + + /** + * Set the bcc addresses. + * + * @param list a vector of the bcc addresses. + */ + public void setBccList(Vector<EmailAddress> list) { + this.bccList = list; + } + + /** + * Set the files to attach. + * + * @param files list of files to attach to the email. + */ + public void setFiles(Vector<File> files) { + this.files = files; + } + + /** + * Set the subject. + * + * @param subject the subject line. + */ + public void setSubject(String subject) { + this.subject = subject; + } + + /** + * Set the owning task. + * + * @param task the owning task instance. + */ + public void setTask(Task task) { + this.task = task; + } + + /** + * Indicate whether filenames should be listed in the body. + * + * @param b if true list attached file names in the body content. + */ + public void setIncludeFileNames(boolean b) { + this.includeFileNames = b; + } + + /** + * Set the generic headers to add to the email. + * @param v a Vector presumed to contain Header objects. + * @since Ant 1.7 + */ + public void setHeaders(Vector<Header> v) { + this.headers = v; + } + + /** + * Send the email. + * + * @throws BuildException if the email can't be sent. + */ + public abstract void send() + throws BuildException; + + /** + * Whether invalid recipients should be ignored (but a warning + * will be logged) instead of making the task fail. + * + * <p>Even with this property set to true the task will still fail + * if the mail couldn't be sent to any recipient at all.</p> + * + * @since Ant 1.8.0 + */ + public void setIgnoreInvalidRecipients(boolean b) { + ignoreInvalidRecipients = b; + } + + /** + * Whether invalid recipients should be ignored. + * + * @since Ant 1.8.0 + */ + protected boolean shouldIgnoreInvalidRecipients() { + return ignoreInvalidRecipients; + } + + /** + * Return the current Date in a format suitable for a SMTP date + * header. + * + * @return the current date in SMTP suitable format. + * + * @since Ant 1.5 + */ + protected final String getDate() { + return DateUtils.getDateForHeader(); + } +} + |