Skip to main content
Administrator Guide
Last Updated: 2023-06-23
Reference: Email-Out Transport Properties

Reference: Email-Out Transport Properties

Common Tab

Property
XML Attribute Name
Description
Id
id
The unique ID of the
email-out
component within the assembly.
Routes Response To
routes-response-to
The destination of the response message for the
email-out
transport.
Execute When
execute-when
A condition that determines whether the transport executes.
To
to
The primary email address of the intended recipient. Follows the format
mailto:[emailaddress]
.
If you want to use only BCC addresses, specify an empty
mailto:
value.
Subject
subject
The subject line of the email.
From
from
The email address that should display in the
From
field of the delivered email.
Ssl
ssl
Specifies whether the connection is SSL.
Starttls
starttls
Specifies whether to activate an immediate SSL negotiation with the remote SMTP server by issuing a STARTTLS command before starting the SMTP session. The SMTP server responds with one of these reply codes:
  • 220 Ready to start.
  • TLS 501 Syntax error (no parameters allowed).
  • 454 TLS not available due to a temporary reason.
The
Ssl
and
starttls
properties are mutually exclusive.
Host
host
The name or IP address of the SMTP mail server that the transport uses to deliver the message.
If you're using OAuth, set this value to
localhost
.
Port
port
The port number at which the mail server is running. The default is 25, the standard SMTP port. Exceptions:
  • If the
    ssl
    property is set to
    true
    and no port is specified, the default is 465.
  • If the
    Starttls
    property is set to
    true
    and no port is specified, the default is 587.
User
The user name for accessing the email server.
Password
password
The password for the username specified in the
User
property.

Advanced Tab

Property
XML Attribute Name
Description
Store Message
store-message
Specify
none
unless otherwise advised by Workday Support.
To store messages, use Studio's
store
step.
Transport Class
transport-class
Specifies an alternative implementation class on a per-assembly basis, if required.
You can globally change the implementation classes by editing the WEB-INF/classes/spring/assembly-bean.xml file.
Ignore Dynamic Endpoints
ignore-dynamic-endpoints
Specifies whether to ignore the dynamic WS-Addressing (WSA) value in the incoming message's header or use it to override the value in the transport's
Endpoint
property.
Use the
set-dynamic-endpoint
step to specify WS-Addressing details.
Bcc
bcc
Specifies blind carbon-copy email recipients, using a semicolon separator. Example:
logan.mcneil@workday.com; jake.lee@workday.com
.
Cc
cc
Specifies carbon-copy email recipients, using a semicolon separator. Example:
logan.mcneil@workday.com; jake.lee@workday.com
.
Reply To
reply-to
The email address that's automatically inserted into the
To
field when a user replies to an email message. For most email messages, the address in the
From
field is sufficient, so there's no need to define the
Reply To
property. Specify multiple emails addresses using a semicolon separator. Example:
logan.mcneil@workday.com; jake.lee@workday.com
.
Timeout
timeout
Specifies, in milliseconds, a timeout period for FTP sessions between clients and the FTP server on which the transport is listening. If you don't specify a value, the session times out after 300000 ms (5 minutes).
Transient Exceptions
transient-exceptions
Transient exceptions are exceptions that could succeed without any modifications on retry. Nontransient exceptions are those that will continue to fail on retry until the underlying cause of the problem is corrected.
By default, Workday treats only
java.net.ConnectException
and
java.net.SocketException
errors as transient exceptions.
Specify additional transient exceptions as a comma, space, or comma and space-separated enumeration of class names. Examples:
  • java.net.UknownHostException java.net.ConnectException java.net.SocketException
  • java.net.UknownHostException,java.net.ConnectException,java.net.SocketException
  • java.net.UknownHostException, java.net.ConnectException, java.net.SocketException
  • @{new java.net.UnknownHostException().getClass().getName()}
If you specify additional transient exceptions, you must also include the default exceptions
java.net.ConnectException
and
java.net.SocketException
in the list. If you don't, Workday overwrites them.

SMTP Headers Tab

Property
XML Attribute Name
Description
Name
name
The name of a custom SMTP header.
To add a new custom header below any existing rows, click
Add
, then supply a
Name
and
Value
.
To add a new header above an existing row, place the cursor in that row, then click
Insert
on the
Add
drop-down menu.
Use the buttons to the right of the
SMTP Headers
tab to delete rows or reorder them.
Value
value
The value of a custom SMTP header.

OAuth Tab

To use Microsoft Outlook OAuth authentication with Studio's Email-Out component, register Studio as an app with Microsoft Azure, provide domain-wide delegation, grant administrator consent for
Mail.Send
permissions, and obtain various values. For details, see https://learn.microsoft.com/en-gb/azure/active-directory/develop/v2-oauth2-client-creds-grant-flow.
To use Google Gmail OAuth authentication with Studio's Email-Out component, register a Service Account with Google Cloud, provide domain-wide delegation, and obtain a JSON description of various values. For details, see https://support.google.com/cloud/answer/6158849?hl=en.
Property
XML Attribute Name
Description
Provider
provider
The name of the email provider, either
MICROSOFT_OUTLOOK
or
GOOGLE_GMAIL
.
Name
name
The Workday-mandated names you associate with various values obtained from the Microsoft Azure Portal or Google Cloud Console.
For Microsoft Outlook, enter these names:
  • outlook.client.id
  • outlook.client.secret
  • outlook.tenant.id
  • outlook.user.id
For Google Gmail, enter:
  • gmail.service.account.key.json
  • gmail.delegated.user
Value
value
The values obtained from Microsoft or Google that you associate with the names above.
For Microsoft Outlook, create these name/value pairs:
Name
Value
outlook.client.id
From a registered app's
Overview
page on the Microsoft Azure Portal:
Application (client) ID.
outlook.client.secret
From a registered app's
Certificates & secrets
page on the Microsoft Azure Portal:
Client Secret ID.
outlook.tenant.id
From a registered app's
Overview
page on the Microsoft Azure Portal:
Directory (tenant) ID.
outlook.user.id
The Outlook address of the account from which the email will be sent. Also entered in the
From
field on the
Common
tab.
For Google Gmail, create these name/value pairs:
Name
Value
gmail.service.account.key.json
The JSON text from the file downloaded from the
KEYS
section of the
Service accounts
page on the Google Cloud Console.
gmail.delegated.user
The Gmail address from which the email will be sent. Must be a Principal associated with the Google Service Account. Also entered in the
From
field on the
Common
tab.

Gmail over SSL or with STARTTLS

When configuring the
email-out
transport to use Gmail over SSL or STARTTLS, ensure that:
  • user
    and
    password
    contain valid Gmail credentials.
  • endpoint
    is
    mailto:[name]@gmail.com
    .
  • host
    is
    smtp.gmail.com
    .
  • ssl
    or
    starttls
    is set to
    true
    .
  • port
    is either:
    • 465, if
      ssl
      is set to
      true
      .
    • 587, if
      starttls
      is set to
      true
      .
  • timeout
    is
    30000
    (30 seconds).

Microsoft Office 365 over SSL or with STARTTLS

When configuring the
email-out
transport to use Microsoft Office 365 over SSL or STARTTLS, ensure that:
  • user
    and
    password
    contain valid Office 365 user credentials.
  • endpoint
    is
    mailto:[name]@[domain-name.top-level-domain]
    .
  • host
    is
    smtp.office365.com
    .
  • ssl
    or
    starttls
    is set to
    true
    .
  • port
    either:
    • 465, if
      ssl
      is set to
      true
      .
    • 587, if
      starttls
      is set to
      true
      .
  • timeout
    is
    30000
    (30 seconds).

Configuring the Message Body and Attachment for Nonbinary Formats

When receiving incoming messages, many email applications match the first text part in the MIME message and use it as the message text. To set the MIME type of the root message part to
text/plain
, set the message
Input
and
Output
properties to
message
, then set the
Output
MIME Type to
text/plain
.
Use the
Message Builder
to define the message content for the email message body using a
text
element.
For the attachment, set the
Output
property to
attachment
, the
Output
attachment index to
0
, and the
Output
MIME Type to
text/plain
.
Again, use the
Message Builder
to define the message content for the attachment using a
text
element.
To prevent some email applications displaying text attachments in the message body, set the attachment MIME type to
application/octet-stream
, even though it's actually text. To do so, use an MVEL expression within an
eval
step. Example:
parts[1].setMimeType('application/octet-stream')
To set the attachment file name, use an MVEL expression to set its
Content-Disposition
header. Example:
parts[1].setHeader('Content-Disposition', 'attachment; filename=payload.txt')
.
Finally, configure the
email-out
step.

Configuring the Message Body and Attachment for Binary Formats

To inject a binary file into the
MediationContext
, define a Retrieval service for the
workday-in
that retrieves the file from an FTP or SFTP transport.
Create the message body, then use an
eval
step to copy the retrieved file to a variable. You can use the
da
document accessor variable and the
toVar
method to achieve this. Example:
da.toVar(Rising_2011_Logo.jpg', 'wd.retrieve.variable')
.
Use a
copy
step to copy the file from the
wd.retrieve.variable
to an attachment. To do so, set the
Input
property to
variable
and specify
wd.retrieve.variable
as the input variable. Set the
Output
property to
attachment
, specify an
Output
attachment index of
0
, and an
Output
MIME Type of
image/jpeg
.
Finally, configure the
email-out
step.