Email

The Email component is an application component that allows users to get and send email from Mail Protocol. It can carry out the following tasks:

You can connect to different email servers through the Email component. Emails are fetched and sent using the IMAP and SMTP protocols, respectively. You can set the server address and port for each protocol in the component configuration.

#Release Stage

Alpha

#Configuration

The component definition and tasks are defined in the definition.json and tasks.json files respectively.

#Setup

In order to communicate with the external application, the following connection details need to be provided. You may specify them directly in a pipeline recipe as key-value pairs within the component's setup block, or you can create a Connection from the Integration Settings page and reference the whole setup as setup: ${connection.<my-connection-id>}.

FieldField IDTypeNote
Server Address (required)server-addressstringThe address of the email server.
Server Port (required)server-portintegerThe port of the email server.
Email Address (required)email-addressstringThe email address of the user.
App Password (required)passwordstringThe password of the App passwords in Gmail settings.

Supported Provider Samples for Sending Email

ProviderSMTP Server AddressPortNotes
Gmailsmtp.gmail.com587 (TLS) or 465 (SSL)
Outlooksmtp-mail.outlook.com587
Yahoosmtp.mail.yahoo.com465 or 587
iCloudsmtp.mail.me.com587If you see an error message when using SSL, try using TLS or STARTTLS instead.

Supported Provider Samples for Receiving Emails

ProviderIMAP Server AddressPort
Gmailimap.gmail.com993
Outlookoutlook.office365.com993
Yahooimap.mail.yahoo.com993
iCloudimap.mail.me.com993

For App Password, please follow the steps below:

    1. Please Sign in to your Google Account with link: https://myaccount.google.com/apppasswords
    1. Create a new App Password and save it in a secure place.
    1. Add App Password as a new secret in the Instill Platform by navigating to Console > Settings > Secrets.
    1. Reference the secret in the App Password field in the component configuration.

#Supported Tasks

#Send Email

Send an email to recipients

InputIDTypeDescription
Task ID (required)taskstringTASK_SEND_EMAIL
Recipient (required)recipientsarray[string]The email addresses of the recipients.
CCccarray[string]The email addresses for Carbon Copy.
BCCbccarray[string]The email addresses for Blind Carbon Copy.
SubjectsubjectstringThe subject of the email.
Message (required)messagestringThe message to be sent.
OutputIDTypeDescription
ResultresultstringThe result of sending the email.

#Read Emails

Read emails from a mailbox

InputIDTypeDescription
Task ID (required)taskstringTASK_READ_EMAILS
SearchsearchobjectThe search criteria for the emails.
Input Objects in Read Emails

The search criteria for the emails.

FieldField IDTypeNote
Search DatedatestringSearch for emails with the date the email was sent.
LimitlimitintegerThe maximum number of emails to search for.
MailboxmailboxstringThe mailbox to search for emails.
Search Messagesearch-email-messagestringSearch for emails with a specific message.
Search Fromsearch-fromstringSearch for emails from a specific email address.
Search Subjectsearch-subjectstringSearch for emails with a specific subject.
Search Tosearch-tostringSearch for emails to a specific email address.
OutputIDTypeDescription
Emailsemailsarray[object]The emails that match the search criteria.
Output Objects in Read Emails

Emails

FieldField IDTypeNote
DatedatestringThe date the email was sent.
FromfromstringThe email address of the sender.
MessagemessagestringThe message of the email.
SubjectsubjectstringThe subject of the email.
TotoarrayThe email addresses of the recipient.

#Mailbox

You have to confirm what exactly the mailbox name is. Take Gmail as an example, the mailbox names are following.

MailboxMailbox Name to input
InboxINBOX
Sent[Gmail]/Sent Mail
Drafts[Gmail]/Drafts

#Search From and Search To

You need to input the exact same email address with < as a prefix and > as a suffix as the email you want to search for. For example, if you want to search for the email from email@example.com, you need to input <email@example.com>.