EmailTask (Apache Ant API)
Date: 2018-03-24

org.apache.tools.ant.taskdefs.email

## Class EmailTask

- java.lang.Object
- - org.apache.tools.ant.ProjectComponent
  - - org.apache.tools.ant.Task
    - - org.apache.tools.ant.taskdefs.email.EmailTask

- All Implemented Interfaces:
    java.lang.Cloneable
  Direct Known Subclasses:
    MimeMail, SendEmail

      public class EmailTask
      extends Task

  A task to send SMTP email. This is a refactoring of the SendMail and MimeMail tasks such that both are within a single task.
  Since:
    Ant 1.5

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `static class` | `EmailTask.Encoding` Enumerates the encoding constants.

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static java.lang.String` | `AUTO` Constant to show that the best available mailer should be used.
    `static java.lang.String` | `MIME` Constant to allow the Mime mailer to be requested
    `static java.lang.String` | `PLAIN` Constant to allow the plaintext mailer to be requested
    `static java.lang.String` | `UU` Constant to allow the UU mailer to be requested

    - ### Fields inherited from class org.apache.tools.ant.Task

      `target, taskName, taskType, wrapper`

    - ### Fields inherited from class org.apache.tools.ant.ProjectComponent

      `description, location, project`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `EmailTask()`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addBcc(EmailAddress address)` Add a "bcc" address element.
    `void` | `addCc(EmailAddress address)` Add a "cc" address element.
    `void` | `addFileset(FileSet fs)` Add a set of files (nested fileset attribute).
    `void` | `addFrom(EmailAddress address)` Add a from address element.
    `void` | `addMessage(Message message)` Add a message element.
    `void` | `addReplyTo(EmailAddress address)` Add a replyto address element.
    `void` | `addTo(EmailAddress address)` Add a to address element.
    `Path` | `createAttachments()` Creates a Path as container for attachments.
    `Header` | `createHeader()` Create a nested header element.
    `void` | `execute()` Send an email.
    `java.lang.String` | `getCharset()` Returns the character set of mail message.
    `boolean` | `getIncludeFileNames()` Get whether file names should be included.
    `void` | `setBccList(java.lang.String list)` Shorthand to set the "bcc" address element.
    `void` | `setCcList(java.lang.String list)` Shorthand to set the "cc" address element.
    `void` | `setCharset(java.lang.String charset)` Sets the character set of mail message.
    `void` | `setEnableStartTLS(boolean b)` Set whether to allow authentication to switch to a TLS connection via STARTTLS.
    `void` | `setEncoding(EmailTask.Encoding encoding)` Set the preferred encoding method.
    `void` | `setFailOnError(boolean failOnError)` Set whether BuildExceptions should be passed back to the core.
    `void` | `setFiles(java.lang.String filenames)` Set the list of files to be attached.
    `void` | `setFrom(java.lang.String address)` Shorthand to set the from address element.
    `void` | `setIgnoreInvalidRecipients(boolean b)` Whether invalid recipients should be ignored (but a warning will be logged) instead of making the task fail.
    `void` | `setIncludefilenames(boolean includeFileNames)` Set whether to include filenames.
    `void` | `setMailhost(java.lang.String host)` Set the host.
    `void` | `setMailport(int port)` Set the mail server port.
    `void` | `setMessage(java.lang.String message)` Shorthand method to set the message.
    `void` | `setMessageFile(java.io.File file)` Shorthand method to set the message from a file.
    `void` | `setMessageFileInputEncoding(java.lang.String encoding)` Sets the encoding to expect when reading the message from a file.
    `void` | `setMessageMimeType(java.lang.String type)` Shorthand method to set type of the text message, text/plain by default but text/html or text/xml is quite feasible.
    `void` | `setPassword(java.lang.String password)` Set the password for SMTP auth; this requires JavaMail.
    `void` | `setReplyTo(java.lang.String address)` Shorthand to set the replyto address element.
    `void` | `setSSL(boolean ssl)` Set whether to send data over SSL.
    `void` | `setSubject(java.lang.String subject)` Set the subject line of the email.
    `void` | `setToList(java.lang.String list)` Shorthand to set the "to" address element.
    `void` | `setUser(java.lang.String user)` Set the user for SMTP auth; this requires JavaMail.

    - ### Methods inherited from class org.apache.tools.ant.Task

      `bindToOwner, getOwningTarget, getRuntimeConfigurableWrapper, getTaskName, getTaskType, getWrapper, handleErrorFlush, handleErrorOutput, handleFlush, handleInput, handleOutput, init, isInvalid, log, log, log, log, maybeConfigure, perform, reconfigure, setOwningTarget, setRuntimeConfigurableWrapper, setTaskName, setTaskType`

    - ### Methods inherited from class org.apache.tools.ant.ProjectComponent

      `clone, getDescription, getLocation, getProject, setDescription, setLocation, setProject`

    - ### Methods inherited from class java.lang.Object

      `equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### AUTO

          public static final java.lang.String AUTO

      Constant to show that the best available mailer should be used.
      See Also:
        Constant Field Values

    - #### MIME

          public static final java.lang.String MIME

      Constant to allow the Mime mailer to be requested
      See Also:
        Constant Field Values

    - #### UU

          public static final java.lang.String UU

      Constant to allow the UU mailer to be requested
      See Also:
        Constant Field Values

    - #### PLAIN

          public static final java.lang.String PLAIN

      Constant to allow the plaintext mailer to be requested
      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### EmailTask

          public EmailTask()

  - ### Method Detail

    - #### setUser

          public void setUser(java.lang.String user)

      Set the user for SMTP auth; this requires JavaMail.
      Parameters:
        `user` - the String username.
      Since:
        Ant 1.6

    - #### setPassword

          public void setPassword(java.lang.String password)

      Set the password for SMTP auth; this requires JavaMail.
      Parameters:
        `password` - the String password.
      Since:
        Ant 1.6

    - #### setSSL

          public void setSSL(boolean ssl)

      Set whether to send data over SSL.
      Parameters:
        `ssl` - boolean; if true SSL will be used.
      Since:
        Ant 1.6

    - #### setEnableStartTLS

          public void setEnableStartTLS(boolean b)

      Set whether to allow authentication to switch to a TLS connection via STARTTLS.
      Parameters:
        `b` - boolean; if true STARTTLS will be supported.
      Since:
        Ant 1.8.0

    - #### setEncoding

          public void setEncoding(EmailTask.Encoding encoding)

      Set the preferred encoding method.
      Parameters:
        `encoding` - The encoding (one of AUTO, MIME, UU, PLAIN).

    - #### setMailport

          public void setMailport(int port)

      Set the mail server port.
      Parameters:
        `port` - The port to use.

    - #### setMailhost

          public void setMailhost(java.lang.String host)

      Set the host.
      Parameters:
        `host` - The host to connect to.

    - #### setSubject

          public void setSubject(java.lang.String subject)

      Set the subject line of the email.
      Parameters:
        `subject` - Subject of this email.

    - #### setMessage

          public void setMessage(java.lang.String message)

      Shorthand method to set the message.
      Parameters:
        `message` - Message body of this email.

    - #### setMessageFile

          public void setMessageFile(java.io.File file)

      Shorthand method to set the message from a file.
      Parameters:
        `file` - The file from which to take the message.

    - #### setMessageMimeType

          public void setMessageMimeType(java.lang.String type)

      Shorthand method to set type of the text message, text/plain by default but text/html or text/xml is quite feasible.
      Parameters:
        `type` - The new MessageMimeType value.

    - #### addMessage

          public void addMessage(Message message)
                          throws BuildException

      Add a message element.
      Parameters:
        `message` - The message object.
      Throws:
        `BuildException` - if a message has already been added.

    - #### addFrom

          public void addFrom(EmailAddress address)

      Add a from address element.
      Parameters:
        `address` - The address to send from.

    - #### setFrom

          public void setFrom(java.lang.String address)

      Shorthand to set the from address element.
      Parameters:
        `address` - The address to send mail from.

    - #### addReplyTo

          public void addReplyTo(EmailAddress address)

      Add a replyto address element.
      Parameters:
        `address` - The address to reply to.
      Since:
        Ant 1.6

    - #### setReplyTo

          public void setReplyTo(java.lang.String address)

      Shorthand to set the replyto address element.
      Parameters:
        `address` - The address to which replies should be directed.
      Since:
        Ant 1.6

    - #### addTo

          public void addTo(EmailAddress address)

      Add a to address element.
      Parameters:
        `address` - An email address.

    - #### setToList

          public void setToList(java.lang.String list)

      Shorthand to set the "to" address element.
      Parameters:
        `list` - Comma-separated list of addresses.

    - #### addCc

          public void addCc(EmailAddress address)

      Add a "cc" address element.
      Parameters:
        `address` - The email address.

    - #### setCcList

          public void setCcList(java.lang.String list)

      Shorthand to set the "cc" address element.
      Parameters:
        `list` - Comma separated list of addresses.

    - #### addBcc

          public void addBcc(EmailAddress address)

      Add a "bcc" address element.
      Parameters:
        `address` - The email address.

    - #### setBccList

          public void setBccList(java.lang.String list)

      Shorthand to set the "bcc" address element.
      Parameters:
        `list` - comma separated list of addresses.

    - #### setFailOnError

          public void setFailOnError(boolean failOnError)

      Set whether BuildExceptions should be passed back to the core.
      Parameters:
        `failOnError` - The new FailOnError value.

    - #### setFiles

          public void setFiles(java.lang.String filenames)

      Set the list of files to be attached.
      Parameters:
        `filenames` - Comma-separated list of files.

    - #### addFileset

          public void addFileset(FileSet fs)

      Add a set of files (nested fileset attribute).
      Parameters:
        `fs` - The fileset.

    - #### createAttachments

          public Path createAttachments()

      Creates a Path as container for attachments. Supports any filesystem resource-collections that way.
      Returns:
        the path to be configured.
      Since:
        Ant 1.7

    - #### createHeader

          public Header createHeader()

      Create a nested header element.
      Returns:
        a Header instance.

    - #### setIncludefilenames

          public void setIncludefilenames(boolean includeFileNames)

      Set whether to include filenames.
      Parameters:
        `includeFileNames` - Whether to include filenames in the text of the message.

    - #### getIncludeFileNames

          public boolean getIncludeFileNames()

      Get whether file names should be included.
      Returns:
        Identifies whether file names should be included.

    - #### setIgnoreInvalidRecipients

          public void setIgnoreInvalidRecipients(boolean b)

      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.

      Parameters:
        `b` - boolean
      Since:
        Ant 1.8.0

    - #### execute

          public void execute()

      Send an email.
      Overrides:
        `execute` in class `Task`

    - #### setCharset

          public void setCharset(java.lang.String charset)

      Sets the character set of mail message. Will be ignored if mimeType contains ....; Charset=... substring or encoding is not `mime`.
      Parameters:
        `charset` - the character encoding to use.
      Since:
        Ant 1.6

    - #### getCharset

          public java.lang.String getCharset()

      Returns the character set of mail message.
      Returns:
        Charset of mail message.
      Since:
        Ant 1.6

    - #### setMessageFileInputEncoding

          public void setMessageFileInputEncoding(java.lang.String encoding)

      Sets the encoding to expect when reading the message from a file.

      Will be ignored if the message has been specified inline.

      Parameters:
        `encoding` - the name of the charset used
      Since:
        Ant 1.9.4