Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

On this Page

Table of Contents
maxLevel2
excludeOlder Versions|Additional Resources|Related Links|Related Information

...

Snap type:

...

Write 

...

Description:

...

This Snap provides the functionality to send email messages to an SMTP server in plain text as well as HTML format. It can also format an HTML table and fill the rows by using data from the input view.

Note
If your pipeline results in no data being sent to this Snap, no email will be sent.

 

...

[None] 

...

Works in Ultra Pipelines if batching is disabled. 

Supports TLS version 1.2.

...

This Snap uses account references created on the Accounts page of SnapLogic Manager to handle access to this endpoint and requires a valid SMTP account. It is possible to send emails anonymously if your SMTP server allows. In that case, you may leave the Email ID and Password fields empty. You may have to set the Secure connection to 'NONE' if your SMTP server requires. See Email Account for information on setting up this type of account.

 

...

This Snap has at most one document input view. Each document may contain Map data with values for JavaScript expression in the properties and/or data for the HTML table rows.

Note
If an input view is configured and the Snap is connected to incoming documents, emails will be sent for each document processed unless you are using HTML Table as the Email Type. If you want to just send an attachment to an email, do not add an input view. Instead, just place the Snap unconnected on the workspace.

Image Removed

Note that if the main portion of the pipeline fails, the Email Sender Snap in this case may succeed and send a message with incorrect data.

...

This Snap has at most one document output view. Each document contains a Map data which represents one successfully-sent email message. The keys in the document are "from", "to", "cc", "subject", "emailType", "body" and "attachments". The values of "from", "to", "cc", "subject" and "body" are strings. The value of "emailType" is "text/plain" or "text/html". The value of "attachments" key is a Map data whose keys are URLs and values are file names of the attached files. The following is an example of an output document:

[{"to":"user@example.com","body":"","emailType":"text/html","subject":"Tweeters","from":"user@example.com","attachments":[{"url":"sldb:///result-20140128115802.json","filename":"result-20140128115802.json"}],"cc":null}] 

...

In this article

Table of Contents
maxLevel2
excludeOlder Versions|Additional Resources|Related Links|Related Information

Overview

You can use this Snap to send email messages to an SMTP server in plain text as well as HTML format. You can also format an HTML table and fill the rows by using data from the input view.

Snap Type

Email Reader Snap is a WRITE-type Snap that writes the data to the downstream Snap.

Prerequisites

This Snap requires a valid SMTP account to handle access to this endpoint.

Info

It is possible to send emails anonymously if your SMTP server allows. In that case, you may leave the Email ID and Password fields empty. You may have to set the Secure connection to 'NONE' if your SMTP server requires. See Email Account for information on setting up this type of account.

Info

If your pipeline results in no data being sent to this Snap, no email will be sent.

Support for Ultra Pipelines

Works in Ultra Pipelines if batching is disabled. 

Supports TLS version 1.2.

Limitations and Known Issues

None.

Snap Views

Type

Format

Number of Views

Examples of Upstream and Downstream Snaps

Description

Input 

Document

  • Min: 0

  • Max: 1

Document

This Snap can have a most one document input view. Each document may contain Map data with values for JavaScript expression in the properties and/or data for the HTML table rows.

Note

If the main portion of the pipeline fails, the Email Sender Snap in this case may succeed and send a message with incorrect data.

Note

If an input view is configured and the Snap is connected to incoming documents, emails will be sent for each document processed unless you are using HTML Table as the Email Type. If you want to just send an attachment to an email, do not add an input view. Instead, just place the Snap unconnected on the workspace.

Output

Document

Binary

Binary or Document

  • Min:

  • Max:

Document

This Snap has exactly one output view. Each document contains a Map data which represents one successfully-sent email message. The keys in the document are "from", "to", "cc", "subject", "emailType", "body" and "attachments". The values of "from", "to", "cc", "subject" and "body" are strings. The value of "emailType" is "text/plain" or "text/html". The value of "attachments" key is a Map data whose keys are URLs and values are file names of the attached files. The following is an example of an output document:

[{"to":"user@example.com","body":"","emailType":"text/html","subject":"Tweeters","from":"user@example.com","attachments":[{"url":"sldb:///result-20140128115802.json","filename":"result-20140128115802.json"}],"cc":null}]

Error

Error handling is a generic way to handle errors without losing data or failing the Snap execution. You can handle the errors that the Snap might encounter while running the Pipeline by choosing one of the following options from the When errors occur list under the Views tab. The available options are:

  • Stop Pipeline Execution: Stops the current pipeline execution when the Snap encounters an error.

  • Discard Error Data and Continue: Ignores the error, discards that record, and continues with the rest of the records.

  • Route Error Data to Error View: Routes the error data to an error view without stopping the Snap execution.

Learn more about Error handling in Pipelines.

Snap Settings

Info
  • Asterisk (*): Indicates a mandatory field.

  • Suggestion icon ((blue star)): Indicates a list that is dynamically populated based on the configuration.

  • Expression icon ((blue star)): Indicates whether the value is an expression (if enabled) or a static value (if disabled). Learn more about Using Expressions in SnapLogic.

  • Add icon ((blue star)): Indicates that you can add fields in the fieldset.

  • Remove icon ((blue star)): Indicates that you can remove fields from the fieldset.

Field Name

Field Type

Description

Label*

Default ValueEmail Sender
ExampleEmail_Sender

String

Specify the name for the Snap. You can modify this to be more specific, especially if you have more than one of the same Snap in your Pipeline.

To

Default Value: None
Example: Snap@example.com, youto@example.com

String/Expression

Specify the email addresses of to-type recipients, its exact format including the address separator may be email-server dependent. It may contain JavaScript expression to be substituted with the data from the input view.

_customer + " Defects and Stories" where the pipeline has a pipeline parameter of customer

Note

Most mail systems use a comma as an address separator. If the Email Sender Snap is having issues with multiple users in the list, verify that you are using the correct address separator for your mail system.

CC

Default Value: None
Example: meto@example.com, someoneelse@example.com

String/Expression

Specify the email addresses of cc-type (carbon copy) recipients, its exact format including the address separator may be email-server dependent. It may contain JavaScript expression to be substituted with the data from the input view.

Note

Most mail systems use a comma as an address separator. If the Email Sender Snap is having issues with multiple users in the list, verify that you are using the correct address separator for your mail system.

Bcc

Default Value: None
Example: meto@example.com, someoneelse@example.com

Specify the email addresses of bcc-type (blind carbon copy) recipients, its exact format including the address separator may be email-server dependent. It may contain JavaScript expression to be substituted with the data from the input view.

Note

Most mail systems use a comma as an address separator. If the Email Sender Snap is having issues with multiple users in the list, verify that you are using the correct address separator for your mail system.

From

Default Value: N/A
Example: meto@example.com, someoneelse@example.com

Specify the email address of the sender. If there are multiple senders then separate them with a comma. The exact format of the email address including the address separator is email-server dependent. The format may contain a JavaScript expression that must be substituted with the data from the input. Email systems like Microsoft Office 365 enforce having the From field populated. We highly recommend you to populate this field.

Note

Most mail systems use a comma as an address separator. However, if you face any issues with multiple users in the list, verify that you are using the correct address separator for your mail system

Subject

Default value:  [None] Example:  Using Email Sender Snap

Subject of email message.

Required. Email type of "Plain text" or "HTML text" or "HTML table". If the Email type property is "Plain text" or "HTML text", the Snap sends one email message per each Document. If the Email type property is "HTML table", each Document provides one row of information for the HTML table.

Example:  HTML table
Default value:  HTML text 

Field set Name

Specify advanced parameters that you want to include in the request.

This field set contains the following fields:

  • Field 1

  • Field 2

  • Field 3

Field 1*

Default Value<value> or None.
Example<value>

String

Field 2

Default Value<value> or None.
Example<value>

String

Snap Execution

Default Value
Example: Validate & Execute

Dropdown list

Select one of the three modes in which the Snap executes. Available options are:

  • Validate & Execute: Performs limited execution of the Snap, and generates a data preview during Pipeline validation. Subsequently, performs full execution of the Snap (unlimited records) during Pipeline runtime.

  • Execute only: Performs full execution of the Snap during Pipeline execution without generating preview data.

  • Disabled: Disables the Snap and all Snaps that are downstream from it.

...

Snap type:

Write 

Description:

This Snap provides the functionality to send email messages to an SMTP server in plain text as well as HTML format. It can also format an HTML table and fill the rows by using data from the input view.

Note

If your pipeline results in no data being sent to this Snap, no email will be sent.

 

Prerequisites:

[None] 

Support and limitations:

Works in Ultra Pipelines if batching is disabled. 

Supports TLS version 1.2.

Account: 

This Snap uses account references created on the Accounts page of SnapLogic Manager to handle access to this endpoint and requires a valid SMTP account. It is possible to send emails anonymously if your SMTP server allows. In that case, you may leave the Email ID and Password fields empty. You may have to set the Secure connection to 'NONE' if your SMTP server requires. See Email Account for information on setting up this type of account.

 

Settings

Label

 

Required. The name for the Snap. You can modify this to be more specific, especially if you have more than one of the same Snap in your pipeline.

To


 

Required. Email addresses of to-type recipients, its exact format including the address separator may be email-server dependent. It may contain JavaScript expression to be substituted with the data from the input view.

Example:

...

Snap@example.com,

...

 youto@example.com

_customer + " Defects and Stories" where the pipeline has a pipeline parameter of customer

Default value: [None]

Note

Most mail systems use a comma as an address separator. If the Email Sender Snap is having issues with multiple users in the list, verify that you are using the correct address separator for your mail system.

 

CC


Email addresses of cc-type recipients, its exact format including the address separator may be email-server dependent. It may contain JavaScript expression to be substituted with the data from the input view.

Example:

...

 meto@example.com,

...

 someoneelse@example.com

Default value: [None]

Note

Most mail systems use a comma as an address separator. If the Email Sender Snap is having issues with multiple users in the list, verify that you are using the correct address separator for your mail system.

 

Bcc


Email addresses of bcc-type (blind carbon copy) recipients, its exact format including the address separator may be email-server dependent. It may contain JavaScript expression to be substituted with the data from the input view.

Example: meto@example.com, someoneelse@example.com
Default value: [None]

Note

Most mail systems use a comma as an address separator. If the Email Sender Snap is having issues with multiple users in the list, verify that you are using the correct address separator for your mail system.


From


The email address of the sender. If there are multiple senders then separate them with a comma. The exact format of the email address including the address separator is email-server dependent. The format may contain a JavaScript expression that must be substituted with the data from the input. Email systems like Microsoft Office 365 enforce having the From field populated. We highly recommend you to populate this field.

Default value: N/A

Example: meto@example.com, someoneelse@example.com

Note

Most mail systems use a comma as an address separator. However, if you face any issues with multiple users in the list, verify that you are using the correct address separator for your mail system.


Subject


Subject of email message.
Example:  Using Email Sender Snap
Default value:  [None] 

Email type


Required. Email type of "Plain text" or "HTML text" or "HTML table". If the Email type property is "Plain text" or "HTML text", the Snap sends one email message per each Document. If the Email type property is "HTML table", each Document provides one row of information for the HTML table.

Example:  HTML table
Default value:  HTML

...

text 

Template

Template of email message body. For the email type of "HTML text" and "HTML table", the Template body should be in HTML format. For "HTML table" type, the Snap expects to find <table> and </table> tags inside the Template body. One Document at the input view corresponds to one row of the HTML table. For each Document, the Snap gets a map data referenced by the Table-data path property and insert a row into the HTML table of the message body. The Table-data path property can also reference an array of map data. The Snap uses the key sets of the map data to compose the column headers of the table. The Snap processes the entire stream of Documents in a batch to generate the superset of keys. 

See Expression Language for items to use with the expression toggle (=), but set Email type to Plain Text.

Example: The following is an example for a "HTML table" type of the Template body. It uses Cascading Style Sheets (CSS) for the table style. Please note Gmail does not support CSS in rendering HTML table. You should use in-line style of the HTML table for proper rendering in Gmail. The Snap does not support the in-line style HTML table for individual cells in the table header and rows: 


Paste code macro
languagexml
<!DOCTYPE html> 
<html> 
<head> 
     <title>Email Snap HTML Table</title> 
<style type="text/css"> table.Snap {background-color:transparent;border-collapse:collapse;width:100%;} table.Snap th, 
      table.Snap td {text-align:center;border:1px solid black;padding:5px;} table.Snap th {background-color:AntiqueWhite;} 
</style> 
</head> 
<body> 
        <p>Dear SnapLogic Users:</p> 
        <p>This is a sample Snap email with HTML Table email type.</p> 
        <table class="Snap"> 
        </table> 
        <p></p> 
        <p>Regards,</p> 
        <p>SnapLogic Staff</p> 
</body> 
</html>

Default value:  [None]

Attachments


URLs of files that you want to attach to your email.

...

 If the URL protocol is missing, or if a given path is relative, SnapLogic automatically modifies the URL to start with "sldb:///".

The Snap supports SLDB, SFTP, and SMB file protocols. The username should be included in the URL as in the example below and the password should be entered into the Attachment password property in the email account. The filename part of the URL can contain wildcards so that multiple files can be attached for each row of Attachments property.

It may also contain JavaScript expressions, which can be substituted with the data from the input view.

Note

...

Using Files in SFTP and SMB

  • The Email Sender Snap first downloads SFTP or SMB files to a temporary location in the local disk before sending them as attachments. Therefore, you must ensure that there is sufficient free local disk space in the Snaplex. All temporary files are deleted once the Snap completes execution.

  • The character '@' is a reserved character and is used as a delimiter between the username and hostname in the URL. Do not use it as part of filenames or directory names.

Example:

  • sftp://qatest@sftp.example.com/home/qatest/update_*.xls

  • Snap/sales.xls

  • smb://mydomain;snapuser@54.159.200.139:445/snapuser/sample.csv

  • smb://snap@54.159.200.329:445/snap/sample.csv

Default value: [None]

Note

...

Using files in SLDB

  • Attaching files from the same project: <file_name>

...

  •  or sldb:///<file_name>. For example, asset.json or sldb:///asset.json.

  • Attaching files from a shared project: shared/<file_name>

...

  •  or sldb:///shared/<file_name>. For example, shared/asset.json or sldb:///shared/asset.json.

  • Attaching files from a shared project, wherein the pipeline being developed is also a shared project: <file_name>

...

  •  or sldb:///<file_name>. For example, asset.json or sldb:///asset.json.


Table-data path

JSON path to the map data which corresponds to a row in the HTML table. If it references an array of map data, such as $.Customers[::1], the Snap will add each map data into the HTML table. If the object referenced by this property is not a map data nor an array of map data, the input document will be routed to the error view.

Example: $.table
Default value: [None]

When using just "$" in the Table-data path, the Snap creates an HTML table, wherein the Template Body has the HTML table tags (<table></table>). Thus, the table auto-fills with the incoming data.

Note

The document structure needs to be flat. You can do this by using a Structure Snap before the Email Sender Snap, creating a new map of all the required fields, and then using "$" as table-data path.

 

Batch size


The Batch size property is used only for the "HTML table" Email type. The unit of the value is in the number of rows of the HTML table. If the number of Documents the Snap receives from the input view reaches the given Batch size, the Snap composes an email message with an HTML table and sends it to the server. Multiple emails are generate if needed to send out all Documents. The Snap sends the last message at the end of the pipeline execution if any number of the un-sent table rows remain. 
Example:  100
Default value:

...

100 

Pass through


Determines if input data should be passed through or not. If selected, input data will be mapped as a value to the 'original' key in the output document.

Default value: Not

...

selected 

Retries

Number of retries when the Snap fails to send email. Initially the Snap waits two seconds before retry, and in every subsequent retry. the delay is doubled up to an hour.

Example:  0  (no retry)
Default value: 3

Multiexcerpt include macro
nameSnap Execution
pageSOAP Execute

Multiexcerpt include macro
nameExecution_Detail_Write
pageSOAP Execute

Multiexcerpt include macro
nameTemporary Files
pageJoin

Note

This note applies to the case your account is a Gmail account, but it may also apply to other web-based email accounts. Gmail SMTP accounts may not work with the Email Sender Snap. Gmail processes an email hijack detection based on IP addresses and locations. If it sees the IP address that the IMAP/POP3 client app is running from is different than the usual locations, it suspects the account is being hijacked and sends error messages like:

  • +OK Gpop ready for requests from 23.23.38.68 n18mb191678450qav" or

  • "Cannot connect to the endpoint reason: [SYS/PERM] Your account is not enabled for POP access. Please visit your Gmail settings page and enable your account for POP access." or other variations.

You may find an email from Gmail in the inbox titled "Suspicious sign in prevented", which is caused by the execution of Email Reader Snap. You may be able to see more messages from Gmail in your Gmail account web page: Account > Security > Recent Activity > View activity.

As of writing this note, there seems to be no settings available in the Gmail account to disable this security feature. Please contact Gmail Support if your Gmail account must work in Email Reader Snap.

HTML Table Email Template Body

Paste code macro
languagexml
<!DOCTYPE html> 
<html> 
<head> 
     <title>Email Snap HTML Table</title> 
<style type="text/css"> table.Snap {background-color:transparent;border-collapse:collapse;width:100%;} table.Snap th, 
      table.Snap td {text-align:center;border:1px solid black;padding:5px;} table.Snap th {background-color:AntiqueWhite;} 
</style> 
</head> 
<body> 
        <p>Dear SnapLogic Users:</p> 
        <p>This is a sample Snap email with HTML Table email type.</p> 
        <table class="Snap"> 
        </table> 
        <p></p> 
        <p>Regards,</p> 
        <p>SnapLogic Staff</p> 
</body> 
</html>

Examples

Expand
titleEmail attachment from an SFTP location

Email Attachment from an SFTP Location

In the below example, the Email Sender Snap mail with an attachment from the SFTP location.

Image Modified

...

Image Added

Note that in order to read the file attachment from the SFTP location, the Attachment password must be set on the Account Settings of the Snap, else will display an error.

Image Modified

The successful execution of the pipeline displays the below output preview:

Image Modified


Expand
titleEmail attachment from an SLDB Location

Email Attachment from an SLDB Location

In the below pipeline, the Email Sender Snap reads and sends the mail with an attachment (Customer Information.csv) from an SLDB location.

Image Modified

...

Image Added

Image Modified  


See Also

https://community.snaplogic.com/t/loop-through-csv-file-before-sending-email/10671

https://community.snaplogic.com/t/how-we-can-send-specific-email-template-from-email-sender-snap/10684

Insert excerpt
Email Snap Pack
Email Snap Pack
nopaneltrue