All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.apache.tools.ant.taskdefs.email.Mailer Maven / Gradle / Ivy

There is a newer version: 1.10.15
Show newest version
/*
 *  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 replyToList = null;
    protected Vector toList = null;
    protected Vector ccList = null;
    protected Vector bccList = null;
    protected Vector files = null;
    protected String subject = null;
    protected Task task;
    protected boolean includeFileNames = false;
    protected Vector
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. * * @param explicit boolean * @since Ant 1.8.2 */ public void setPortExplicitlySpecified(boolean explicit) { portExplicitlySpecified = explicit; } /** * Whether the port has been explicitly specified by the user. * * @return boolean * @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 replyTo addresses. * @since Ant 1.6 */ public void setReplyToList(Vector list) { this.replyToList = list; } /** * Set the to addresses. * * @param list a vector of recipient addresses. */ public void setToList(Vector list) { this.toList = list; } /** * Set the cc addresses. * * @param list a vector of cc addresses. */ public void setCcList(Vector list) { this.ccList = list; } /** * Set the bcc addresses. * * @param list a vector of the bcc addresses. */ public void setBccList(Vector list) { this.bccList = list; } /** * Set the files to attach. * * @param files list of files to attach to the email. */ public void setFiles(Vector 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
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. * *

Even with this property set to true the task will still fail * if the mail couldn't be sent to any recipient at all.

* * @param b boolean * @since Ant 1.8.0 */ public void setIgnoreInvalidRecipients(boolean b) { ignoreInvalidRecipients = b; } /** * Whether invalid recipients should be ignored. * * @return boolean * @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(); } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy