chp:handleiding:aws_ses_aanvragen

Er zijn 2 manieren om vanuit CHP mail te versturen:

  1. Op basis van authenticatie via smtp.mail.omroep.nl
  2. Via AWS Simple Email Service (SES)

In de netboot omgeving had NPO Hosting&Streaming een SMTP server beschikbaar die door iedereen die op appcluster, testcluster, e.d. hostte gebruikt kon worden. Echter, omdat deze SMTP server niet zomaar bereikbaar is vanuit de cloud (CHP) werkt dat niet in CHP. Hieronder worden de alternatieven beschreven

De oude vertrouwde smtp.mail.omroep.nl is nog steeds beschikbaar, maar om hiermee vanaf CHP te kunnen connecten is authenticatie vereist.

Via https://support.npohosting.nl/ kan je een ticket indienen bij NPO Hosting. In dit ticket hebben we wat informatie nodig:

  • Welke projecten moeten er bij kunnen
  • Welke accounts wil je hebben (bv acceptatie en productie).

Als de authenticatie opgezet is, dan wordt er in het bovenliggende project een secret aangemaakt genaamd smtp-<account>-credentials met de volgende velden:

  • user: de username om in te loggen. Ziet eruit als <account>@smtp.mail.omroep.nl
  • password: het te gebruiken password
  • server: de server om mee te connecten. Dit zal normaliter smtp.mail.omroep.nl; zijn.

De gegevens om mail te versturen zijn als volgt:

  • smtp host: smtp.mail.omroep.nl
  • poort: 587
  • encryptie: starttls
  • username: <account>@smtp.mail.omroep.nl

Het CHP draait binnen de cloud omgeving van Amazon Web Services, en zij bieden een dienst aan voor het verzenden van e-mail. Die dienst heet AWS Simple Email Service (SES)

Om van AWS SES gebruik te kunnen maken, heb je onze hulp nodig, je kan het niet zelf aan zetten.

Via https://support.npohosting.nl/ kan je een ticket indienen bij NPO Hosting. In dit ticket hebben we wat informatie nodig:

  • Vanaf welk domein (of welke domeinen) wil je kunnen mailen (als potentieel elk mailadres binnen dat domein)
  • En/Of vanaf welk mailadres (of welke mailadressen) wil je kunnen mailen (dit moeten mailadressen zijn die een mail kunnen ontvangen, om te valideren)
  • Welke projecten moeten er bij kunnen
  • Zie verderop, de gegevens om uit de 'sandbox' te komen

We maken met deze gegevens een instantie van SES aan voor jouw omroep/afdeling. We maken ook zogeheten 'Verified Identities' aan voor de domeinen/maialdressen die je opgeeft. Als wij ook de DNS hosting doen voor je domein, dan regelen wij de verificatie voor je. In geval van specifieke mailadressen moet er iemand bij de mail voor dat adres kunnen, en op een link in een verificatiemail kunnen klikken.

Wij maken ook een SMTP user voor je aan en leveren een aantal gegevens in een secret op (normaal gesproken in het hoofdproject, dus niet in 'xrtv-website-prod', maar in 'xrtv') waarmee je dan geauthenticeerd via SMTP verbinding kan maken.

oc get secret xrtv-smtp -ojson -n xrtv | jq '.data'
{
  "smtp.password": "Z2VoZWltd2FjaHR3b29yZHZvb3JkZWRvY3VtZW50YXRpZQo=",
  "smtp.server": "ZW1haWwtc210cC5ldS1jZW50cmFsLTEuYW1hem9uYXdzLmNvbQ==",
  "smtp.user": "QUtJQURIS1hSVFZKQUZVS1lBCg=="
}

Een username, een password, en de server waarmee je verbinding kan maken (op poort 587 of 465)

Dit secret kan een admin van de omroep of afdeling dan kopieren naar de projecten die het nodig hebben, of er kan toegang toe worden verleend via roles en rolebindings, als je zin hebt om je daar meer in te verdiepen.

Gedecodeerd ziet dat er dan zo uit:

oc get secret xrtv-smtp -ojson -n xrtv | jq '.data | map_values(@base64d)'
{
  "smtp.password": "geheimwachtwoordvoordedocumentatie",
  "smtp.server": "email-smtp.eu-central-1.amazonaws.com",
  "smtp.user": "AKIADHKXRTVJAFUKYA"
}

AWS staat in de Simple Email Service alleen toe dat je mail verstuurd namens geverifieerde identiteiten. Dat kan per domein (xrtv.nl) of per mailadres (info@xrtv.nl, redactie@xrtv.nl, etc.)

DNS domein

Om een heel domein te verifieren voegen we een aantal DNS records (drie) toe in het domein zodat alle mailadressen van een domein gevalideerd beschouwd worden (iets@xrtv.nl) Dit gaat natuurlijk heel makkelijk als het domein bij NPO gehost wordt, maar vergt nog wat actie van de aanvrager als het domein niet bij NPO ligt. In principe is er per klant/afdeling 1 AWS account, en dus ook 1 SES. Als dus een domein gevalideerd is, kan elke dienst die gebruik maakt van dat account mailen namens dat domein.

Mailadres

Om een mailadres te verifieren, moet het mailadres daadwerkelijk mail kunnen ontvangen, want AWS verifieert het via een mail die er naar toe gestuurd wordt. Iemand moet dan op een link in die verificatie mail klikken. Een noreply@xrtv.nl adres zonder mailbox er achter is dus niet zomaar te verifieren, hou daar rekening mee.

Standaard is de toegang tot SES beperkt.

  • Je kan dan alleen vanaf Verified Identities naar andere Verified Identities mailen.
  • Je kan maximaal 1 mail per seconde versturen
  • Je kan maar 200 berichten per 24 uur versturen
  • Berichten mogen maximaal 10 MB zijn

Dat is natuurlijk vrij beperkt, en alleen geschikt voor simpele tests of het werkt. Ze noemen dat in de zandbak ('sandbox') zitten.

Je zult dus eigenlijk meteen al door willen naar 'production access'. We kunnen productie toegang aanvragen door het juiste formuliertje in te vullen bij AWS.

Dit is alleen maar een formaliteit, en zolang we de juiste informatie doorgeven wordt het eigenlijk altijd wel toegekend. Maar helaas kost het wel eens een paar iteraties voordat we de informatie aangeleverd krijgen in een format waarbij ze bij AWS begrijpen wat we bedoelen.

Zie hiervoor ook https://docs.aws.amazon.com/ses/latest/dg/request-production-access.html

Vragen die in elk geval beantwoord moeten kunnen worden zijn:

  • Hoe kom je aan de mailadressen waar je naar gaat mailen?
  • Hoe kunnen ontvangers zorgen dat ze geen mail meer van je krijgen?
  • Hoe ga je om met bounces en klachten?
  • De URL van een website die goed vertegenwoordigd wat je doet
  • Of de mail 'Transactional' is (ofwel, heeft de gebruiker per mail er om gevraagd, bijv. password reset mail) of 'Marketing' (promotionele mail, vaak in bulk) is.

Als de informatie voldoende wordt geacht, dan is de productie toegang binnen 24 uur geregeld.

Standaard kan je dan

  • 50.000 mails per 24 uur
  • 14 mails per seconde
  • Ook naar non-verified ontvangers sturen
  • chp/handleiding/aws_ses_aanvragen.txt
  • Last modified: 2026/05/27 14:01
  • by 127.0.0.1