aboutsummaryrefslogtreecommitdiffstats
path: root/framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/taskdefs/email/Mailer.java
diff options
context:
space:
mode:
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.java277
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();
+ }
+}
+