org.apache.jmeter.protocol.smtp.sampler.protocol

## Class SendMailCommand

- java.lang.Object
- - org.apache.jmeter.protocol.smtp.sampler.protocol.SendMailCommand

-     public class SendMailCommand
      extends Object

  This class performs all tasks necessary to send a message (build message, prepare connection, send message). Provides getter-/setter-methods for an SmtpSampler-object to configure transport and message settings. The send-mail-command itself is started by the SmtpSampler-object.

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `SendMailCommand()` Standard-Constructor

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addAttachment(File attachment)` Adds an attachment to current message - to be called by SmtpSampler-object
    `void` | `addHeader(String headerName, String headerValue)` Adds a header-part to current HashMap of headers - to be called by SmtpSampler-object
    `void` | `clearAttachments()` Clear all attachments for current message
    `void` | `clearHeaders()` Deletes all current headers in HashMap
    `void` | `execute()` Processes prepareMessage() and execute()
    `void` | `execute(javax.mail.Message message)` Sends message to mailserver, waiting for delivery if using synchronous mode.
    `List<File>` | `getAttachments()` Returns all attachment for current message - standard getter
    `String` | `getConnectionTimeout()` Returns connection timeout for the SMTP-connection - returns the default connection timeout if no value has been supplied.
    `CollectionProperty` | `getHeaders()` Returns headers for current message - standard getter
    `String` | `getPassword()` Returns password to authenticate at the mailserver - standard getter
    `List<javax.mail.internet.InternetAddress>` | `getReceiverBCC()` Returns receivers of current message as `InternetAddress` ("bcc") - standard getter
    `List<javax.mail.internet.InternetAddress>` | `getReceiverCC()` Returns receivers of current message as `InternetAddress` ("cc") - standard getter
    `String` | `getSender()` Returns sender-address for current message - standard getter
    `String` | `getSmtpPort()` Returns port to be used for SMTP-connection (standard 25 or 465) - standard getter
    `String` | `getSmtpServer()` Returns FQDN or IP of SMTP-server to be used to send message - standard getter
    `String` | `getSubject()` Returns subject for current message - standard getter
    `String` | `getTimeout()` Returns timeout for the SMTP-connection - returns the default timeout if no value has been supplied.
    `String` | `getTlsProtocolsToUse()`
    `String` | `getUsername()` Returns username to authenticate at the mailserver - standard getter
    `boolean` | `getUseSSL()` Returns if SSL is used to send message - standard getter
    `boolean` | `getUseStartTLS()` Returns if StartTLS is used to transmit message - standard getter
    `boolean` | `isEnforceStartTLS()` Returns if StartTLS is enforced to secure the connection, i.e.
    `boolean` | `isSynchronousMode()` Returns if synchronous-mode is used for current message (i.e.
    `boolean` | `isTrustAllCerts()` Returns if sampler should trust all certificates - standard getter
    `boolean` | `isUseAuthentication()` Returns if authentication is used to access the mailserver - standard getter
    `javax.mail.Message` | `prepareMessage()` Prepares message prior to be sent via execute()-method, i.e.
    `void` | `setAttachments(List<File> attachments)` Adds attachments to current message
    `void` | `setConnectionTimeOut(String connectionTimeOut)`
    `void` | `setEmlMessage(String emlMessage)` Sets eml-message to be sent
    `void` | `setEnableDebug(boolean selected)`
    `void` | `setEnforceStartTLS(boolean enforceStartTLS)` Instructs object to enforce StartTLS and not to fallback to plain SMTP-connection - to be called by SmtpSampler-object
    `void` | `setHeaderFields(CollectionProperty headerFields)` Sets headers for current message
    `void` | `setMailBody(String body)` Set the mail body.
    `void` | `setPassword(String password)` Sets password to authenticate at the mailserver - to be called by SmtpSampler-object
    `void` | `setPlainBody(boolean plainBody)` Set whether to send a plain body (i.e.
    `void` | `setReceiverBCC(List<javax.mail.internet.InternetAddress> receiverBCC)` Sets receivers of current message ("bcc") - to be called by SmtpSampler-object
    `void` | `setReceiverCC(List<javax.mail.internet.InternetAddress> receiverCC)` Sets receivers of current message ("cc") - to be called by SmtpSampler-object
    `void` | `setReceiverTo(List<javax.mail.internet.InternetAddress> receiverTo)` Sets receivers of current message ("to") - to be called by SmtpSampler-object
    `void` | `setReplyTo(List<javax.mail.internet.InternetAddress> replyTo)`
    `void` | `setSender(String sender)` Sets the sender-address for the current message - to be called by SmtpSampler-object
    `void` | `setSmtpPort(String smtpPort)` Sets port to be used for SMTP-connection (standard 25 or 465) - to be called by SmtpSampler-object
    `void` | `setSmtpServer(String smtpServer)` Sets FQDN or IP of SMTP-server to be used to send message - to be called by SmtpSampler-object
    `void` | `setSubject(String subject)` Sets subject for current message - called by SmtpSampler-object
    `void` | `setSynchronousMode(boolean synchronousMode)` Sets the use of synchronous-mode (i.e.
    `void` | `setTimeOut(String timeOut)`
    `void` | `setTlsProtocolsToUse(String tlsProtocols)` Sets the list of protocols to be used on TLS handshake
    `void` | `setTrustAllCerts(boolean trustAllCerts)` Determines if SMTP-sampler should trust all certificates, no matter what CA - to be called by SmtpSampler-object
    `void` | `setTrustStoreToUse(String trustStoreToUse)` Sets the path to the local truststore to be used for SSL / StartTLS - to be called by SmtpSampler-object
    `void` | `setUseAuthentication(boolean useAuthentication)` Sets if authentication should be used to access the mailserver - to be called by SmtpSampler-object
    `void` | `setUseEmlMessage(boolean sendEmlMessage)`
    `void` | `setUseLocalTrustStore(boolean useLocalTrustStore)` Assigns the object to use a local truststore for SSL / StartTLS - to be called by SmtpSampler-object
    `void` | `setUsername(String username)` Sets username to authenticate at the mailserver - to be called by SmtpSampler-object
    `void` | `setUseSSL(boolean useSSL)` Sets SSL to secure the delivery channel for the message - to be called by SmtpSampler-object
    `void` | `setUseStartTLS(boolean useStartTLS)` Sets StartTLS to secure the delivery channel for the message - to be called by SmtpSampler-object

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

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

- - ### Constructor Detail

    - #### SendMailCommand

          public SendMailCommand()

      Standard-Constructor

  - ### Method Detail

    - #### prepareMessage

          public javax.mail.Message prepareMessage()
                                            throws javax.mail.MessagingException,
                                                   IOException

      Prepares message prior to be sent via execute()-method, i.e. sets properties such as protocol, authentication, etc.
      Returns:
        Message-object to be sent to execute()-method
      Throws:
        `javax.mail.MessagingException` - when problems constructing or sending the mail occur
        `IOException` - when the mail content can not be read or truststore problems are detected

    - #### execute

          public void execute(javax.mail.Message message)
                       throws javax.mail.MessagingException,
                              InterruptedException

      Sends message to mailserver, waiting for delivery if using synchronous mode.
      Parameters:
        `message` - Message previously prepared by prepareMessage()
      Throws:
        `javax.mail.MessagingException` - when problems sending the mail arise
        `InterruptedException` - when interrupted while waiting for delivery in synchronous mode

    - #### execute

          public void execute()
                       throws javax.mail.MessagingException,
                              IOException,
                              InterruptedException

      Processes prepareMessage() and execute()
      Throws:
        `InterruptedException` - when interrupted while waiting for delivery in synchronous modus
        `IOException` - when the mail content can not be read or truststore problems are detected
        `javax.mail.MessagingException` - when problems constructing or sending the mail occur

    - #### getSmtpServer

          public String getSmtpServer()

      Returns FQDN or IP of SMTP-server to be used to send message - standard getter
      Returns:
        FQDN or IP of SMTP-server

    - #### setSmtpServer

          public void setSmtpServer(String smtpServer)

      Sets FQDN or IP of SMTP-server to be used to send message - to be called by SmtpSampler-object
      Parameters:
        `smtpServer` - FQDN or IP of SMTP-server

    - #### getSender

          public String getSender()

      Returns sender-address for current message - standard getter
      Returns:
        sender-address

    - #### setSender

          public void setSender(String sender)

      Sets the sender-address for the current message - to be called by SmtpSampler-object
      Parameters:
        `sender` - Sender-address for current message

    - #### getSubject

          public String getSubject()

      Returns subject for current message - standard getter
      Returns:
        Subject of current message

    - #### setSubject

          public void setSubject(String subject)

      Sets subject for current message - called by SmtpSampler-object
      Parameters:
        `subject` - Subject for message of current message - may be null

    - #### getUsername

          public String getUsername()

      Returns username to authenticate at the mailserver - standard getter
      Returns:
        Username for mailserver

    - #### setUsername

          public void setUsername(String username)

      Sets username to authenticate at the mailserver - to be called by SmtpSampler-object
      Parameters:
        `username` - Username for mailserver

    - #### getPassword

          public String getPassword()

      Returns password to authenticate at the mailserver - standard getter
      Returns:
        Password for mailserver

    - #### setPassword

          public void setPassword(String password)

      Sets password to authenticate at the mailserver - to be called by SmtpSampler-object
      Parameters:
        `password` - Password for mailserver

    - #### setReceiverTo

          public void setReceiverTo(List<javax.mail.internet.InternetAddress> receiverTo)

      Sets receivers of current message ("to") - to be called by SmtpSampler-object
      Parameters:
        `receiverTo` - List of receivers

    - #### getReceiverCC

          public List<javax.mail.internet.InternetAddress> getReceiverCC()

      Returns receivers of current message as `InternetAddress` ("cc") - standard getter
      Returns:
        List of receivers

    - #### setReceiverCC

          public void setReceiverCC(List<javax.mail.internet.InternetAddress> receiverCC)

      Sets receivers of current message ("cc") - to be called by SmtpSampler-object
      Parameters:
        `receiverCC` - List of receivers

    - #### getReceiverBCC

          public List<javax.mail.internet.InternetAddress> getReceiverBCC()

      Returns receivers of current message as `InternetAddress` ("bcc") - standard getter
      Returns:
        List of receivers

    - #### setReceiverBCC

          public void setReceiverBCC(List<javax.mail.internet.InternetAddress> receiverBCC)

      Sets receivers of current message ("bcc") - to be called by SmtpSampler-object
      Parameters:
        `receiverBCC` - List of receivers

    - #### isUseAuthentication

          public boolean isUseAuthentication()

      Returns if authentication is used to access the mailserver - standard getter
      Returns:
        True if authentication is used to access mailserver

    - #### setUseAuthentication

          public void setUseAuthentication(boolean useAuthentication)

      Sets if authentication should be used to access the mailserver - to be called by SmtpSampler-object
      Parameters:
        `useAuthentication` - Should authentication be used to access mailserver?

    - #### getUseSSL

          public boolean getUseSSL()

      Returns if SSL is used to send message - standard getter
      Returns:
        True if SSL is used to transmit message

    - #### setUseSSL

          public void setUseSSL(boolean useSSL)

      Sets SSL to secure the delivery channel for the message - to be called by SmtpSampler-object
      Parameters:
        `useSSL` - Should StartTLS be used to secure SMTP-connection?

    - #### getUseStartTLS

          public boolean getUseStartTLS()

      Returns if StartTLS is used to transmit message - standard getter
      Returns:
        True if StartTLS is used to transmit message

    - #### setUseStartTLS

          public void setUseStartTLS(boolean useStartTLS)

      Sets StartTLS to secure the delivery channel for the message - to be called by SmtpSampler-object
      Parameters:
        `useStartTLS` - Should StartTLS be used to secure SMTP-connection?

    - #### getSmtpPort

          public String getSmtpPort()

      Returns port to be used for SMTP-connection (standard 25 or 465) - standard getter
      Returns:
        Port to be used for SMTP-connection

    - #### setSmtpPort

          public void setSmtpPort(String smtpPort)

      Sets port to be used for SMTP-connection (standard 25 or 465) - to be called by SmtpSampler-object
      Parameters:
        `smtpPort` - Port to be used for SMTP-connection

    - #### isTrustAllCerts

          public boolean isTrustAllCerts()

      Returns if sampler should trust all certificates - standard getter
      Returns:
        True if all Certificates are trusted

    - #### setTrustAllCerts

          public void setTrustAllCerts(boolean trustAllCerts)

      Determines if SMTP-sampler should trust all certificates, no matter what CA - to be called by SmtpSampler-object
      Parameters:
        `trustAllCerts` - Should all certificates be trusted?

    - #### setEnforceStartTLS

          public void setEnforceStartTLS(boolean enforceStartTLS)

      Instructs object to enforce StartTLS and not to fallback to plain SMTP-connection - to be called by SmtpSampler-object
      Parameters:
        `enforceStartTLS` - Should StartTLS be enforced?

    - #### isEnforceStartTLS

          public boolean isEnforceStartTLS()

      Returns if StartTLS is enforced to secure the connection, i.e. no fallback is used (plain SMTP) - standard getter
      Returns:
        True if StartTLS is enforced

    - #### getHeaders

          public CollectionProperty getHeaders()

      Returns headers for current message - standard getter
      Returns:
        CollectionProperty of headers for current message

    - #### setHeaderFields

          public void setHeaderFields(CollectionProperty headerFields)

      Sets headers for current message
      Parameters:
        `headerFields` - CollectionProperty of headers for current message

    - #### addHeader

          public void addHeader(String headerName,
                                String headerValue)

      Adds a header-part to current HashMap of headers - to be called by SmtpSampler-object
      Parameters:
        `headerName` - Key for current header
        `headerValue` - Value for current header

    - #### clearHeaders

          public void clearHeaders()

      Deletes all current headers in HashMap

    - #### getAttachments

          public List<File> getAttachments()

      Returns all attachment for current message - standard getter
      Returns:
        List of attachments for current message

    - #### setAttachments

          public void setAttachments(List<File> attachments)

      Adds attachments to current message
      Parameters:
        `attachments` - List of files to be added as attachments to current message

    - #### addAttachment

          public void addAttachment(File attachment)

      Adds an attachment to current message - to be called by SmtpSampler-object
      Parameters:
        `attachment` - File-object to be added as attachment to current message

    - #### clearAttachments

          public void clearAttachments()

      Clear all attachments for current message

    - #### isSynchronousMode

          public boolean isSynchronousMode()

      Returns if synchronous-mode is used for current message (i.e. time for delivery, ... is measured) - standard getter
      Returns:
        True if synchronous-mode is used

    - #### setSynchronousMode

          public void setSynchronousMode(boolean synchronousMode)

      Sets the use of synchronous-mode (i.e. time for delivery, ... is measured) - to be called by SmtpSampler-object
      Parameters:
        `synchronousMode` - Should synchronous-mode be used?

    - #### setTimeOut

          public void setTimeOut(String timeOut)

      Parameters:
        `timeOut` - the timeOut to set

    - #### getTimeout

          public String getTimeout()

      Returns timeout for the SMTP-connection - returns the default timeout if no value has been supplied.
      Returns:
        Timeout to be set for SMTP-connection

    - #### setConnectionTimeOut

          public void setConnectionTimeOut(String connectionTimeOut)

      Parameters:
        `connectionTimeOut` - the connectionTimeOut to set

    - #### getConnectionTimeout

          public String getConnectionTimeout()

      Returns connection timeout for the SMTP-connection - returns the default connection timeout if no value has been supplied.
      Returns:
        Connection timeout to be set for SMTP-connection

    - #### setUseLocalTrustStore

          public void setUseLocalTrustStore(boolean useLocalTrustStore)

      Assigns the object to use a local truststore for SSL / StartTLS - to be called by SmtpSampler-object
      Parameters:
        `useLocalTrustStore` - Should a local truststore be used?

    - #### setTrustStoreToUse

          public void setTrustStoreToUse(String trustStoreToUse)

      Sets the path to the local truststore to be used for SSL / StartTLS - to be called by SmtpSampler-object
      Parameters:
        `trustStoreToUse` - Path to local truststore

    - #### setUseEmlMessage

          public void setUseEmlMessage(boolean sendEmlMessage)

    - #### setEmlMessage

          public void setEmlMessage(String emlMessage)

      Sets eml-message to be sent
      Parameters:
        `emlMessage` - path to eml-message

    - #### setMailBody

          public void setMailBody(String body)

      Set the mail body.
      Parameters:
        `body` - the body of the mail

    - #### setPlainBody

          public void setPlainBody(boolean plainBody)

      Set whether to send a plain body (i.e. not multipart/mixed)
      Parameters:
        `plainBody` - `true` if sending a plain body (i.e. not multipart/mixed)

    - #### setEnableDebug

          public void setEnableDebug(boolean selected)

    - #### setReplyTo

          public void setReplyTo(List<javax.mail.internet.InternetAddress> replyTo)

    - #### setTlsProtocolsToUse

          public void setTlsProtocolsToUse(String tlsProtocols)

      Sets the list of protocols to be used on TLS handshake
      Parameters:
        `tlsProtocols` - Space separated list

    - #### getTlsProtocolsToUse

          public String getTlsProtocolsToUse()

Copyright © 1998-2019 Apache Software Foundation. All Rights Reserved.