Wanneer je een webapplicatie hebt gebouwd in Laravel die ook mails moet gaan verzenden, is het in veel gevallen fijn wanneer je dat via je eigen mailprovider kan doen.
Als je een applicatie hebt met meerdere gebruikers, die ook zelf nog eens hun eigen mailserver hebben, dan is het zeer interessant wannneer ze dit via hun eigen smtp of imap server kunnen sturen. Met Laravel is dit eenvoudig op te lossen door dit in het configuratie bestand te wijzigen. Maar wat als je meerdere gebruikers hebt met verschillende mailconfiguraties?
Dan kan je natuurlijk in runtime de configuratiewaarde aanpassen, maar dat heeft niet de voorkeur en veroorzaakt soms issues met andere delen van je applicatie.
Met de ingebouwde Swift_Mailer klasse kun je eenvoudig de instellingen aanpassen terwijl je een opdracht uitvoert. Eerst moet je een Swift_SmtpTransport klasse initiëren. Hierin kun je de juiste inlog instellingen opstellen:
$swiftTransport = new Swift_SmtpTransport(‘SMTP-HOST-HIER’, SMTP-POORT-HIER);
Vervolgens kun je middels twee constructors gebruikersnaam en wachtwoord instellen:
$swiftTransport->setUsername(‘GEBRUIKERSNAAM’);
$swiftTransport->setPassword(‘WACHTWOORD’);
Daarna kun je de eigenlijke mailer instantie van Swift initiäliseren:
$swiftmailer = new Swift_Mailer($swiftTransport);
Deze instantie kun je vervolgens gebruiken in je mail functionaliteiten, doormiddel van
$mailer = new Mailer($view, $swiftmailer);
Waarbij je natuurlijk nog wel even de juiste view op moet gaan halen. Na de initialisatie hiervan kun je vervolgens ontvangers en afzenders instellen die de verdere afhandeling regelen.