If you look at the documentation, the Alertmanager has a to
field, but nothing for CC or BCC. So how do you do those?
To explain this, we first need to dig into how email, and in particular the email protocol SMTP, works. There's two parts to sending an email, the envelope which consists of the commands used when talking to the SMTP server, and then the message (or data) containing the headers and body that you're used to seeing. This is similar to an postal mail, where there's what's written on the envelope and then what's written on the paper inside.
When sending an email there will be at least one RCPT TO
command, indicating where the email is to actually get sent to. For example if part of the SMTP exchange was
RCPT TO:<foo@example.com> 250 OK RCPT TO:<bar@example.com> 250 OK
then we'd be asking to send this email to foo@example.com and bar@example.com. The key point to understand is that at the SMTP level any To
, CC
(carbon copy), or BCC
(blind carbon copy) headers inside the message don't affect the RCPT TO
which is where the email is actually going to be sent (though anti-spam systems may have opinions if they don't match).
If you're using a typical email client (a Mail User Agent or MUA if we're being precise) it'll handle things for you under the covers when it talks SMTP. Any addresses in To
or CC
headers will be put in a RCPT TO
, and left in the message. Any addresses in BCC
headers will also be put in a RCPT TO
, however the BCC
headers will be be removed from the message.
What the Alertmanager offers is SMTP more than email. The Alertmanager will default the To
header to the value of the to
configuration field, but beyond that we're on our own. So here's a configuration fragment showing all of these used normally:
email_config: to: to@example.com,cc@example.com,bcc@example.com headers: To: to@example.com CC: cc@example.com
Here all three addresses are in the to
and will be sent the email, but only to@example.com and cc@example.com will end up in the message headers.
The from
field, From
header, and MAIL FROM
SMTP commands work similarly. All of this can be used to have an email that says it was did one thing but actually did something else. That's generally considered abuse and/or spam though, so don't do that.
While the Alertmanager does offer you the power to craft the exact email you want, I'd recommend keeping things simple over doing complicated templating to get things perfect.
Any email addresses you wanted to CC, instead settle for having them in To
. So include them only in the to
field and don't specify explicit To
or CC
headers, which has the same practical effect of sending to certain addresses and listing them in the headers. Instead of doing a BCC use one of the techniques to send a notification to a 2nd destination, which will also avoid the other recipients being aware of it.
Want to improve your notifications? Contact us.
No comments.