Package com.orchestranetworks.workflow

# Interface MailSpec

public interface MailSpec
This interface provides the possibility to send emails in a workflow context.

See Also:
  - `ProcessExecutionContext.createMailSpec()`

- ## Nested Class Summary

  Nested Classes
  Modifier and Type
  Interface
  Description
  `static final class`
  `MailSpec.ContentType`
  `static final class`
  `MailSpec.NotificationType`
  Indicates the notification type.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `notify(MailSpec.NotificationType recipientType, String mailAddress)`
  Adds the email address to the recipients list.
  `void`
  `sendMail(Locale locale)`
  Sends the email using the email specification.
  `void`
  `setBody(String body)`
  Sets the email body.
  `void`
  `setContentType(MailSpec.ContentType contentType)`
  Defines the content type of the email.
  `void`
  `setSubject(String subject)`
  Sets the email subject.
  `void`
  `setTemplateMailId(int templateMailId)`
  Specifies a template email (with a subject and a body).
  `void`
  `setUserContext(UserReference user)`
  Defines a specific user for the email context.

- ## Method Details

  - ### setSubject

    void setSubject(String subject)

    Sets the email subject.

    Parameters:
      `subject` - The email subject. It can contain workflow variables that are automatically evaluated (dataContext variables or email variables).
    See Also:
      - Email variables.

  - ### setBody

    void setBody(String body)

    Sets the email body.

    Parameters:
      `body` - The email body. It can contain workflow variables that are automatically evaluated (dataContext variables or email variables).
    See Also:
      - Email variables.

  - ### setTemplateMailId

    void setTemplateMailId(int templateMailId)
    Specifies a template email (with a subject and a body).

    This template can be configured in the notification messages table (in the 'Configuration' dataset of the workflow definition dataspace).

    Parameters:
      `templateMailId` - The identifier of the email template.

  - ### setUserContext

    void setUserContext(UserReference user)

    Defines a specific user for the email context.

    Dynamic variables are evaluated in the context of this user.

  - ### setContentType

    void setContentType(MailSpec.ContentType contentType)

    Defines the content type of the email.

    The default value is `MailSpec.ContentType.TEXT_PLAIN`.

  - ### notify

    void notify(MailSpec.NotificationType recipientType, String mailAddress)

    Adds the email address to the recipients list.

    Parameters:
      `recipientType` - The recipient type to update.
      `mailAddress` - The email address to add as recipient.

  - ### sendMail

    void sendMail(Locale locale) throws OperationException

    Sends the email using the email specification.

    If a template email identifier is specified, the email is built and sent. Else, the email is sent with the specified subject and body.

    Parameters:
      `locale` - The locale to use for the variables evaluation.
    Throws:
      `OperationException`