Objecten > E-mail
Met nodum wordt het opmaken en versturen van een e-mail heel gemakkelijk. Door het gebruik van een template, het object mail
en een geldige API-key voor bijvoorbeeld Mailgun, Mandrill of SendGrid is het al mogelijk om volledig geautomatiseerd e-mails te versturen.
Om te mailen heb je een eigen, geldige API-key van bijvoorbeeld Mailgun of Mandrill of SendGrid nodig! Het is in nodum mogelijk om een andere e-mailprovider te gebruiken. Let wel op dat alleen e-mail service-providers (zoals Mandrill, Mailgun of SendGrid) ondersteund worden. Verwar deze niet met een e-mail client-provider zoals Gmail, Yahoo of Hotmail.
Voor het versturen van een e-mail binnen nodum is er enkel een template nodig. Dit template dient in de map E-mail te staan. In dit template (bijvoorbeeld 'welkomste-mail.twig' genaamd) zet je de standaard HTML, CSS en Twig-code waaruit de e-mail moet bestaan. Het is in het template mogelijk om variabelen te gebruiken om de mails te personaliseren. Een welkomstmail zou er als volgt uit kunnen zien:
Beste {{ naam }},
Dank voor het inschrijven op {{ website }}! Je bent nu ingeschreven en zal {{ aantal }} keer per maand een nieuwsbrief ontvangen!
Groeten,
{{ afzender }}
De variabelen {{ naam }}
, {{ website }}
, {{ aantal }}
en {{ afzender }}
zijn vrij in te vullen wanneer de mail verstuurd wordt. Overal in het project is dit mailtemplate nu aan te roepen met het object mail
. Met de methode mail.send
kan de e-mail verstuurd worden:
mail.send( string toMailAddr, string toName, string subject, string templateName, array mergeVars, mixed attachments, array ccAddress, array bccAddress)
Alle argumenten in deze methode zijn verplicht, op de mergeVars
, bijlagen, cc's en bcc's na. Het template wordt gehaald uit de map E-mail en moet bestaan om de mail te kunnen versturen. Het is in een template alleen mogelijk om inline CSS te gebruiken door in de pagina de <style></style>
-tags toe te voegen. De bijlagen dienen, indien opgegeven, van het type fileObject te zijn. Hierdoor hebben ze een 'name'- en 'data'-key. Bijvoorbeeld:
{% set pdf1 = api.PDF_generate('test', 'generated.pdf') %}
{% set pdf2 = api.PDF_generate('<b>Hoi!</b> Werkt het?', 'generated-inline.pdf') %}
{% do mail.send(
'test@nodum.io',
'Wietse Wind',
'Welkom op nodum!',
'testmail',
{ 'naam' : 'Alfred', 'website' : 'nodum.io', 'aantal' : '2', 'afzender' : 'Het nodum-team'},
[ pdf1, pdf2 ]
['info@nodum.io', 'support@nodum.io'],
['contact@nodum.io']
) %}
Met de update van versie 2.1.2 is het mogelijk om een eigen afzender in te stellen bij het (automatisch) verzenden van een e-mail. Je kan dit aanpassen door eerst een mail.setFrom
voor je reguliere .send
te plaatsen.
{% do mail.setFrom('pietje-puk@ipublications.net' , 'Piet Puk').send (
'test@nodum.io',
'Wietse Wind',
'Welkom op nodum!',
'testmail',
{ 'naam' : 'Alfred', 'website' : 'nodum.io', 'aantal' : '2', 'afzender' : 'Het nodum-team'},
[ pdf1, pdf2 ]
['info@nodum.io', 'support@nodum.io'],
['contact@nodum.io']
) %}