Table of Contents

Uitgaande mail vanuit CHP 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

Via smtp.mail.omroep.nl met authenticatie

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:

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

De gegevens om mail te versturen zijn als volgt:

AWS Simple Email Service (SES) voor gebruik in CHP aanvragen, via NPO

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.

Dien een verzoek in

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

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"
}

Verified identities

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.

Uit sandbox mode komen

Standaard is de toegang tot SES beperkt.

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:

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

Standaard kan je dan

Meer mail versturen

Hogere quota vallen altijd aan te vragen, via NPO Hosting. Zie hier de AWS docs:

https://docs.aws.amazon.com/ses/latest/dg/manage-sending-quotas.html https://docs.aws.amazon.com/ses/latest/dg/manage-sending-quotas-request-increase.html

Hoe gebruik ik AWS SES SMTP mail

https://docs.aws.amazon.com/ses/latest/dg/send-email-smtp.html