22#################
33
44Robusta can report issues and events in your Kubernetes cluster by sending
5- emails.
5+ emails using either SMTP servers or Amazon Simple Email Service (SES) .
66
77Connecting the mail sink
88------------------------------------------------
99
10- To set up the mail sink, you need access to an SMTP server. You should also
10+ The mail sink supports two modes:
11+
12+ 1. **SMTP Mode ** (default): Uses any SMTP server via the `Apprise library <https://github.com/caronc/apprise >`_
13+ 2. **Amazon SES Mode **: Uses AWS Simple Email Service for improved reliability and deliverability
14+
15+ SMTP Configuration
16+ ------------------------------------------------
17+
18+ To set up SMTP mode, you need access to an SMTP server. You should also
1119set the sender and receiver(s) addresses.
1220
1321Robusta uses `Apprise library <https://github.com/caronc/apprise >`_ under the hood for running mail
@@ -18,10 +26,7 @@ the convenient and sophisticated syntax provided by Apprise. For more details
1826.. image :: /images/mail_sink1.png
1927 :width: 640
2028
21- Configuring the mail sink
22- ------------------------------------------------
23-
24- .. admonition :: Add this to your generated_values.yaml
29+ .. admonition :: SMTP Configuration - Add this to your generated_values.yaml
2530
2631 .. code-block :: yaml
2732
@@ -31,12 +36,160 @@ Configuring the mail sink
3136 mailto : " mailtos://user:password@server&from=a@x&to=b@y,c@z"
3237 with_header : false # optional
3338
39+ Amazon SES Configuration
40+ ------------------------------------------------
41+
42+ Amazon SES provides better deliverability, detailed analytics, and is often more cost-effective than traditional SMTP servers.
43+
44+ Prerequisites
45+ ^^^^^^^^^^^^^
46+
47+ 1. **AWS Account **: Set up an AWS account with SES enabled
48+ 2. **SES Setup **: Verify sender email addresses in SES console
49+ 3. **IAM Permissions **: Ensure your AWS credentials have ``ses:SendEmail `` and ``ses:SendRawEmail `` permissions
50+ 4. **Production Access **: For production use, request SES production access (initially in sandbox mode)
51+
52+ .. admonition :: SES Configuration - Add this to your generated_values.yaml
53+
54+ .. code-block :: yaml
55+
56+ sinksConfig :
57+ - mail_sink :
58+ name : ses_mail_sink
59+ mailto : " mailtos://alerts@company.com" # Recipient addresses
60+ use_ses : true
61+ aws_region : " us-east-1"
62+ from_email : " robusta-alerts@company.com"
63+ with_header : true # optional
64+ # Optional: explicit AWS credentials (prefer IAM roles)
65+ # aws_access_key_id: "${AWS_ACCESS_KEY_ID}"
66+ # aws_secret_access_key: "${AWS_SECRET_ACCESS_KEY}"
67+ # configuration_set: "robusta-emails" # optional
68+
69+ SES Configuration Parameters
70+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
71+
72+ .. list-table ::
73+ :header-rows: 1
74+ :widths: 25 15 60
75+
76+ * - Parameter
77+ - Required
78+ - Description
79+ * - ``use_ses ``
80+ - Yes
81+ - Set to ``true `` to enable SES mode
82+ * - ``aws_region ``
83+ - Yes
84+ - AWS region where SES is configured (e.g., ``us-east-1 ``)
85+ * - ``from_email ``
86+ - Yes
87+ - Verified sender email address in SES
88+ * - ``mailto ``
89+ - Yes
90+ - Recipient email addresses (same format as SMTP mode)
91+ * - ``aws_access_key_id ``
92+ - No
93+ - AWS access key (prefer IAM roles over explicit credentials)
94+ * - ``aws_secret_access_key ``
95+ - No
96+ - AWS secret key (prefer IAM roles over explicit credentials)
97+ * - ``configuration_set ``
98+ - No
99+ - SES configuration set for tracking and analytics
100+
101+ Authentication Options
102+ ^^^^^^^^^^^^^^^^^^^^^^
103+
104+ **Option 1: IAM Roles (Recommended) **
105+
106+ For clusters running in AWS (EKS), use IAM roles for service accounts:
107+
108+ .. code-block :: yaml
109+
110+ sinksConfig :
111+ - mail_sink :
112+ name : ses_mail_sink
113+ mailto : " mailtos://alerts@company.com"
114+ use_ses : true
115+ aws_region : " us-east-1"
116+ from_email : " robusta@company.com"
117+
118+ **Option 2: Environment Variables **
119+
120+ Set AWS credentials as environment variables:
121+
122+ .. code-block :: bash
123+
124+ export AWS_ACCESS_KEY_ID=" your-access-key"
125+ export AWS_SECRET_ACCESS_KEY=" your-secret-key"
126+
127+ **Option 3: Explicit Configuration **
128+
129+ Include credentials directly in configuration (not recommended for production):
130+
131+ .. code-block :: yaml
132+
133+ sinksConfig :
134+ - mail_sink :
135+ name : ses_mail_sink
136+ mailto : " mailtos://alerts@company.com"
137+ use_ses : true
138+ aws_region : " us-east-1"
139+ from_email : " robusta@company.com"
140+ aws_access_key_id : " ${AWS_ACCESS_KEY_ID}"
141+ aws_secret_access_key : " ${AWS_SECRET_ACCESS_KEY}"
142+
143+ Multiple Recipients
144+ ^^^^^^^^^^^^^^^^^^^
145+
146+ SES mode supports multiple recipients using the same mailto format:
147+
148+ .. code-block :: yaml
149+
150+ mailto : " mailtos://primary@company.com?to=secondary@company.com,third@company.com"
151+
152+ Common Parameters
153+ ------------------------------------------------
154+
155+ The following parameters apply to both SMTP and SES modes:
156+
157+ .. list-table ::
158+ :header-rows: 1
159+ :widths: 25 15 60
160+
161+ * - Parameter
162+ - Default
163+ - Description
164+ * - ``with_header ``
165+ - ``true ``
166+ - Include finding header, investigate button, and notification source
167+ * - ``name ``
168+ - Required
169+ - Unique name for this sink configuration
170+
34171The default value of the optional `with_header ` parameter is `true `. If set to `false `, mails
35172sent by this sink will *not * include header information, such as the finding header, investigate
36173button and the source of the notification.
37174
175+ Troubleshooting
176+ ------------------------------------------------
177+
178+ **SES Issues **
179+
180+ - **Authentication errors **: Verify AWS credentials and IAM permissions
181+ - **Message rejected **: Check that sender email is verified in SES console
182+ - **Rate limiting **: SES has sending quotas; check your SES console for limits
183+ - **Sandbox mode **: In SES sandbox, you can only send to verified email addresses
184+
185+ **SMTP Issues **
186+
187+ - **Connection errors **: Verify SMTP server details and network connectivity
188+ - **Authentication failures **: Check username/password in mailto URL
189+ - **TLS/SSL issues **: Ensure correct protocol (``mailto:// `` vs ``mailtos:// ``)
190+
38191.. note ::
39192
40- We highly recommend using the quotes around "mailto" to ensure special characters are handled correctly.
193+ We highly recommend using quotes around "mailto" to ensure special characters are handled correctly.
41194
42- Then do a :ref: `Helm Upgrade <Simple Upgrade >`.
195+ Then do a :ref: `Helm Upgrade <Simple Upgrade >`.
0 commit comments