Emails versturen met PHPMailer
PHPMailer is een van de meest populaire open source PHP bibliotheken om e-mails mee te versturen. Het werd voor het eerst uitgebracht lang geleden in 2001 en is ondertussen uitgegroeid tot het favoriete emailprogramma van de PHP ontwikkelaar, naast enkele andere toppers zoals bijvoorbeeld Swiftmailer.
Waarom PHPMailer?
PHPMailer is een alternatief voor de ingebouwde PHP mail()
functie en biedt veel meer mogelijkheden:
- PHPMailer beschikt over een object georiënteerde interface terwijl
mail()
niet object georiënteerd is. - PHP ontwikkelaars lopen niet hoog op met het creëren van
$headers
strings, omdate e-mails verzenden via demail()
functie, 'geëscaped' moeten worden. In PHPMailer is dat echter zeer gemakkelijk. - Ontwikkelaars moeten ook niet de omslachtige code schrijven (escape karakters en opmaak) om bijlagenlagen en HTML-gebaseerde e-mails te versturen zoals bij de
mail()
functie. - Daarnaast vereist
mail()
functie een lokale e-mailserver voor het verzenden van e-mails. PHPMailer kan een niet-lokale mailserver (SMTP) gebruiken als je authenticatie gebruikt. - PHPMailer kan allerlei soorten foutberichten weergeven in meer dan 40 talen als het er niet in slaagt om een email te versturen.
- PHPMailer ondersteunt een geïntegreerde SMTP-protocol en authenticatie over SSL en TLS.
- Kan een alternatieve plaintext versie van de e-mail versturen voor niet-HTML e-mailclient.
- PHPMailer wordt gedragen door een actieve gemeenschap van ontwikkelaars, waardoor het is veilig en up-to-date
- PHPMailer wordt ook gebruikt door de populaire PHP content management systemen zoals WordPress, Drupal, Joomla etc.
PHP mailer installeren
Je kan PHPmailer installeren met Composer.
Op je eigen computer
Ga naar de root van je webapplicatie en typ:
composer require phpmailer/phpmailer

Als alles goed verloopt installeert Composer het volgende:

Op Cloud9
De autoload van Composer aanpassen
We hebben eigenlijk maar twee bestanden nodig:
- class.phpmailer.php
- class.smpt/php
In het autoload_classmap.php bestand:
<?php // autoload_classmap.php @generated by Composer $vendorDir = dirname(dirname(__FILE__)); $baseDir = dirname($vendorDir); return array( 'PHPMailer' => $vendorDir . '/phpmailer/phpmailer/class.phpmailer.php', 'SMTP' => $vendorDir . '/phpmailer/phpmailer/class.smtp.php', );
Als alles goed verlopen is krijg je volgende debug informatie:

GMail als SMTP server gebruiken
Ryan Sullivan, Gmail SMTP Settings and New Security Measures Demystified, 18, 2016
Bron
Narayan Prusty, Sending Emails in PHP with PHPMailer, SitePoint, April 24, 2015
2016-11-26 21:06:15