Mail

bool mail( string $to, string $subject, string $message [, string $additional_headers [, string $additional_parameters]] )}

De mail functie verstuurt een mail naar een email adres. De eerste drie parameters (to, subject en message) zijn verplicht. De overige parameters zijn optioneel, maar kunnen wel handig zijn om emails beter op te maken (bijvoorbeeld emails in HTML formaat).
De functie mail geeft true terug als de mail succesvol verzonden is.
Let op: dit betekent niet dat de mail ook ontvangen is door de ontvanger!

----

Parameters

De to parameter:
Hierin moeten de emailadressen aan het RFC2822 formaat voldoen. Dit betekent dat ze het volgende formaat moeten hebben:

  • user@example.com
  • user@example.com, anotheruser@example.com
  • User <user@example.com>
  • User <user@example.com>, Another User <anotheruser@example.com>

Er is een gratis functie beschikbaar om afzonderlijke mailadressen te testen op deze RFC.

De subject parameter:
Dit moet een string zijn zonder newline (\n en/of \r).

De message parameter:
Dit moet een string zijn. Hou bij de bouw van deze string rekening met spam-filters.

De optionele parameter additional headers:
Hier kun je extra headers meegeven voor een email bericht. Een combinatie van de juiste headers zorgt ervoor dat emails minder snel als spam worden aangemerkt.

Zelf gebruik ik de volgende headers voor HTML emails, waarbij maar weinig emails als spam worden aangezien:

1
2
3
4
5
6
7
8
$headers  = "X-Mailer: PHP/" . phpversion() . "\r\n";
$headers .= "From: " . $sSenderName . " <" . $sSenderEmail . ">\r\n";
$headers .= "Reply-To: " . $sSenderEmail . "\r\n";
$headers .= "Return-Path: " . $sSenderEmail . "\r\n";
$headers .= "Date: " . date( 'r' ) . "\r\n";
$headers .= "Content-Type: text/html; charset=iso-8859-15\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Transfer-Encoding: 7bit\r\n";

De optionele parameter addition parameters:
Door deze parameter te zetten kun je extra parameters meegeven aan het programma dat de emails verzend aan de server. Indien je hier echter geen ervaring mee hebt, kun je deze parameter beter niet gebruiken.

----

Voorbeeld

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
$aan       = 'testbericht@niemand.com';
$onderwerp = 'onderwerp';
$bericht   = '<span style="color: red">Een HTML test email met een rood zinnetje!</span>';

$headers = "";
$headers .= "X-Mailer: PHP/" . phpversion() . "\r\n";
$headers .= "From: " . $sSenderName . " <" . $sSenderEmail . ">\r\n";
$headers .= "Reply-To: " . $sSenderEmail . "\r\n";
$headers .= "Return-Path: " . $sSenderEmail . "\r\n";
$headers .= "Date: " . date( 'r' ) . "\r\n";
$headers .= "Content-Type: text/html; charset=iso-8859-15\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Transfer-Encoding: 7bit\r\n";

if ( mail( $aan, $onderwerp, $bericht, $headers) ) {
    echo 'De email is verzonden';
} else {
    echo 'De email is NIET verzonden!';
}

?>

Zie ook:

Overkoepelende artikelen:
Inloggen wachtwoord vergeten? Aanmelden