Email sink connector
Description
Send the received rows as an attachment file to one or more email addresses.
The tested email version is 1.5.6.
Key features
Options
| name | type | required | default value |
|---|---|---|---|
| email_from_address | string | yes | - |
| email_to_address | string | yes | - |
| email_host | string | yes | - |
| email_transport_protocol | string | yes | - |
| email_smtp_auth | boolean | yes | - |
| email_smtp_port | int | no | 465 |
| email_authorization_code | string | yes | - |
| email_message_headline | string | yes | - |
| email_message_content | string | yes | - |
| email_attachment_name | string | no | emailsink.csv |
| email_field_delimiter | string | no | , |
| common-options | no | - |
email_from_address [string]
Sender Email Address.
email_to_address [string]
Address to receive mail, Support multiple email addresses, separated by commas (,).
Example: receiver-1@example.com,receiver-2@example.com.
email_host [string]
SMTP server to connect to.
email_transport_protocol [string]
The protocol to load the session .
email_smtp_auth [boolean]
Whether to authenticate the customer.
email_smtp_port [int]
Select port for authentication.
email_authorization_code [string]
Authorization code or password. You can obtain the authorization code from the mailbox settings.
This option is required by the connector configuration. When email_smtp_auth = false, it can be
set to an empty string.
email_message_headline [string]
The subject line of the entire message.
email_message_content [string]
The body of the entire message.
email_attachment_name [string]
The name of the email attachment file. Default is emailsink.csv. The connector writes the rows to
this local file before sending the email.
email_field_delimiter [string]
The delimiter used to separate fields in the attachment file. Default is comma ,.
The attachment has no header row. Field values are written in the upstream schema order. null
values are written as empty strings.
common options
Sink plugin common parameters, please refer to Sink Common Options for details.
Example
Send one table to multiple recipients
This example follows the Email e2e job. It uses a test SMTP server without authentication and sends
one email to each address in email_to_address.
env {
parallelism = 1
job.mode = "BATCH"
}
source {
FakeSource {
tables_configs = [
{
row.num = 100
schema = {
table = "test.table1"
columns = [
{
name = "id"
type = "bigint"
},
{
name = "name"
type = "string"
},
{
name = "age"
type = "int"
}
]
}
}
]
}
}
sink {
EmailSink {
email_from_address = "sender@example.com"
email_to_address = "receiver-1@example.com,receiver-2@example.com"
email_host = "email-e2e"
email_transport_protocol = "smtp"
email_smtp_auth = false
email_smtp_port = 3025
email_authorization_code = ""
email_message_headline = "test-title"
email_message_content = "test-content"
email_attachment_name = "report.csv"
email_field_delimiter = "|"
}
}
Send multiple tables
Email sink supports multi-table input. In the e2e job, two upstream tables create two emails for each recipient.
source {
FakeSource {
tables_configs = [
{
row.num = 100
schema {
table = "test.table1"
fields {
id = bigint
name = string
age = int
}
}
},
{
row.num = 100
schema {
table = "test.table2"
fields {
id = bigint
name = string
age = int
}
}
}
]
}
}
sink {
EmailSink {
email_from_address = "sender@example.com"
email_to_address = "receiver-3@example.com,receiver-4@example.com"
email_host = "email-e2e"
email_transport_protocol = "smtp"
email_smtp_auth = false
email_smtp_port = 3025
email_authorization_code = ""
email_message_headline = "test-title"
email_message_content = "test-content"
}
}
Changelog
Change Log
| Change | Commit | Version |
|---|---|---|
| [improve] email connector options (#8983) | https://github.com/apache/seatunnel/commit/7821e824dd | 2.3.10 |
| [Improve] restruct connector common options (#8634) | https://github.com/apache/seatunnel/commit/f3499a6eeb | 2.3.10 |
| [Improve][Transform] Rename sql transform table name from 'fake' to 'dual' (#8298) | https://github.com/apache/seatunnel/commit/e6169684fb | 2.3.9 |
[Feature][Core] Rename result_table_name/source_table_name to plugin_input/plugin_output (#8072) | https://github.com/apache/seatunnel/commit/c7bbd322db | 2.3.9 |
| [Feature][Restapi] Allow metrics information to be associated to logical plan nodes (#7786) | https://github.com/apache/seatunnel/commit/6b7c53d03c | 2.3.9 |
| [Improve][Connector-V2]Support multi-table sink feature for email (#7368) | https://github.com/apache/seatunnel/commit/c880b7aa4d | 2.3.8 |
[Improve][Common] Adapt FILE_OPERATION_FAILED to CommonError (#5928) | https://github.com/apache/seatunnel/commit/b3dc0bbc21 | 2.3.4 |
| [Feature][Engine] Unify job env parameters (#6003) | https://github.com/apache/seatunnel/commit/2410ab38f0 | 2.3.4 |
| [Improve][Common] Introduce new error define rule (#5793) | https://github.com/apache/seatunnel/commit/9d1b2582b2 | 2.3.4 |
[Improve] Remove use SeaTunnelSink::getConsumedType method and mark it as deprecated (#5755) | https://github.com/apache/seatunnel/commit/8de7408100 | 2.3.4 |
| [Improve][build] Give the maven module a human readable name (#4114) | https://github.com/apache/seatunnel/commit/d7cd601051 | 2.3.1 |
| [Improve][Project] Code format with spotless plugin. (#4101) | https://github.com/apache/seatunnel/commit/a2ab166561 | 2.3.1 |
| [Improve][Connector-V2][Email] Unified exception for email connector (#3898) | https://github.com/apache/seatunnel/commit/829261e1a6 | 2.3.1 |
| [Hotfix][OptionRule] Fix option rule about all connectors (#3592) | https://github.com/apache/seatunnel/commit/226dc6a119 | 2.3.0 |
| [Connector][Email] Add Email Sink Factory (#3326) | https://github.com/apache/seatunnel/commit/0645d11180 | 2.3.0 |
| [Improve][all] change Log to @Slf4j (#3001) | https://github.com/apache/seatunnel/commit/6016100f12 | 2.3.0-beta |
| [#2606]Dependency management split (#2630) | https://github.com/apache/seatunnel/commit/fc047be69b | 2.2.0-beta |
| [Connector-V2] Add Email sink connector (#2304) | https://github.com/apache/seatunnel/commit/96f2a15e4d | 2.2.0-beta |