Phpmailer
Inhoud |
Vooraf
Gebruik voor scripts als PHPMailer altijd een up-to-date versie.
In april 2009 is versie 5.0.0 van PHPMailer uitgekomen, na een sprong in de versienummering vanaf 2.3. In november 2009 is 5.1 verschenen.
Een alternatief voor PHPMailer is Swiftmailer: [1]
Inleiding
PHP kent de functie mail(). Hiermee is het in principe mogelijk allerlei e-mails te versturen.
De mogelijkheden zijn groot, maar de moeilijkheid ligt hem er in, dat van de gebruiker kennis verwacht wordt van het mail protocol: alle mail headers mag hij zelf uitvinden en invullen. Een foutje daarin en het gevolg is dat mail niet leesbaar is, html als plain text te zien is, of bijlagen niet te openen zijn.
PHPMailer is een class die je daarbij een hoop werk en moeite uit handen kan nemen. Waarom opnieuw het wiel uitvinden?
Installeren
Waar haal ik het vandaan? http://phpmailer.sourceforge.net/. En aldaar kiezen voor de optie Download.
Hoe "installeer" ik het? Bij het downloaden krijg je een zip-file. Die pak je uit en je zet alle files in 1 directory, bereikbaar voor PHP. In de rest van het verhaal ga ik er vanuit dat dat is: $_SERVER['DOCUMENT_ROOT']/classes/phpmailer/
Gebruik
In principe is PHPMailer direct klaar voor gebruik.
<?php require_once($_SERVER['DOCUMENT_ROOT'].'/classes/class.phpmailer.php'); $mailer = new PHPMailer(); $mailer->Subject = 'Voorbeeldje'; $mailer->Body = 'Dit is het bericht.'; $mailer->AddAddress('foo@bar.com', 'footje bar'); $mailer->AddCC('foobar2@foobar.com', 'footje bar nr 2'); $mailer->AddBCC('foobar3@foobar.net', 'footje bar nr 3'); $mailer->Send(); ?>
Basis configuratie
Helaas zal het lijken alsof de mail is verstuurd door apache@example.com of iets dergelijks. Dat is allemaal in te stellen met extra regels. Bijvoorbeeld:
<?php $mailer->From = 'info@mijnsite.nl'; ?>
Maar aangezien je over je hele site waarschijnlijk vaker mails wilt versturen, is het misschien handig om daarvoor een configuratie op te zetten.
<php require_once($_SERVER['DOCUMENT_ROOT'].'/classes/class.phpmailer.php'); class FreakMailer extends PHPMailer { var $From = 'info@mijnsite.nl'; var $FromName = 'Webmaster van MijnSite.nl'; } ?>
Aanroep
$mailer = new phpmailer();
onder vermelding van een aantal voorbeelden: TO, CC en BCC. Spelen met From
HTML E-mails
Attachments
Afbeeldingen als bijlagen meesturen
$mailer->AddAttachment('/home/mywebsite/public_html/file.zip', 'file.zip');
gebruik voor mailings
- Veel ontvangers tegelijkertijd: BCC in een loop.
- persoonlijke mails: subject en body in de loop.
Direct praten met SMTP server
PHPMailer configureren voor directe communicatie met een SMTP server, om grote hoeveelheden e-mails te versturen.
Links
http://www.askapache.com/php/phpfreaks-eric-rosebrocks-phpmailer-tutorial.html





