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']
) %}