Home > helpdesk

Mail versturen vanuit een PHP-script

Laatste aanpassing: 04/25/08 13:57:43

Mail versturen met PHP kan via de functie mail(). Hierbij moet echter wel rekening worden gehouden met een aantal zaken.

Als mail() in zijn meest eenvoudige vorm (met geadresseerde, subject en berichttekst) wordt gebruikt, dan resulteert dat in een mailtje met een door het systeem gegenereerde From: header:

	From: nobody <nobody@sipo.nl>

Dit is het resultaat van het feit dat de webserver, en daarmee ook alle PHP-scripts, draaien als gebruiker nobody. Het is dus van belang om aan een mailtje ook de juiste afzender te koppelen. Het gaat dan niet alleen om het opgeven van een andere From: header (zie onder) maar om het instellen van de zgn. envelope sender.

Dat is van belang, omdat een bounce die eventueel het gevolg is van het mailtje dat u verstuurt (door een niet-bestaande geadresseerde, of wat voor reden dan ook) wordt gestuurd naar de envelope sender van het oorspronkelijke mailtje. Als u die dus op nobody@sipo.nl laat staan, zult u nooit weten of uw mailtjes wel aangekomen zijn.

Voor dit probleem biedt PHP de mogelijkheid om extra parameters mee te geven aan de mailserver, namelijk via het vijfde argument. De envelope sender kan worden ingesteld met de parameter -f. De From: header bevat dan ook automatisch het ingestelde e-mailadres.

Tenslotte kan de From: header via het vierde argument van mail() nog apart worden aangepast, bijvoorbeeld om er de echte naam van de afzender in op te nemen.

Voorbeeld: u wilt via uw website mail versturen namens uw verkoopafdeling, met als e-mailadres sales@uwbedrijf.nl. Het e-mailadres van de geadresseerde staat in de variable $to, het onderwerp in $subject en de tekst van het bericht in $text.

<?
$to = "klant@anderbedrijf.com";
$subject = "Uw offerteaanvraag";

$sender = "sales@uwbedrijf.nl";
$headers = "From: Afdeling Verkoop <$sender>";
$params = "-f$sender";

mail($to, $subject, $text, $headers, $params);
?>
Meer informatie over het versturen van mail via PHP en de uitgebreide mogelijkheden vind u in de PHP handleiding. Let op! Voor iedereen die gebruik maakt van deze faciliteit is deze pagina over beveiliging verplichte kost!!!

Terug naar de helpdesk