Tutorials
mail()
Alles wat je moet weten om te kunnen mailen met PHP!
Pagina 1
Stapje één : php.ini instellen om mail te kunnen v
[/i]Als je bij een gewone inet host zit kun je deze stap overslaan.
Aangezien je toch niet bij php.ini kunt komen.[/i]
Voor alle andere:
1. Zoek in je PHPfolder (meestal de root) naar php.ini.
2. Open dit bestand met kladblok (notepad voor de Engelsen.
3. CTRL+F en zoek naar mail function.
4. Je vind dan dit:
[mail function]
; For Win32 only.
SMTP = smtp.tiscali.nl <- hier zet je de smtp server van je provider bv smtp.tiscali.nl
; For Win32 only.
sendmail_from = [email protected] <- dit mailadres krijgen anderen te zien als je geen From in mail() zet. (Hierover later meer)
; For Unix only. You may supply arguments as well (default: "sendmail -t -i").
;sendmail_path = <- hier hoef je niks te veranderen
5. Sla het bestand op (CTRL+S) en restart apache.
Nu gaan we mailen :)
Aangezien je toch niet bij php.ini kunt komen.[/i]
Voor alle andere:
1. Zoek in je PHPfolder (meestal de root) naar php.ini.
2. Open dit bestand met kladblok (notepad voor de Engelsen.
3. CTRL+F en zoek naar mail function.
4. Je vind dan dit:
[mail function]
; For Win32 only.
SMTP = smtp.tiscali.nl <- hier zet je de smtp server van je provider bv smtp.tiscali.nl
; For Win32 only.
sendmail_from = [email protected] <- dit mailadres krijgen anderen te zien als je geen From in mail() zet. (Hierover later meer)
; For Unix only. You may supply arguments as well (default: "sendmail -t -i").
;sendmail_path = <- hier hoef je niks te veranderen
5. Sla het bestand op (CTRL+S) en restart apache.
Nu gaan we mailen :)
Pagina 2
Stapje twee : mail(), de basis
Om met PHP te mailen hebben de makers de functie mail() bedacht.
De syntax van deze functie is zeer eenvoudig :
mail( aan , onderwerp , bericht );
Bij aan vullen we het emailadres van de ontvanger in.
Onderwerp is het onderwerp (dûh) en ook bericht spreekt voor zich.
Nu moeten we dat maar eens gaan toepassen in een klein scriptje.
Op de volgende pagina : bcc, cc en iets over headers bv voor HTMLmail
De syntax van deze functie is zeer eenvoudig :
mail( aan , onderwerp , bericht );
Bij aan vullen we het emailadres van de ontvanger in.
Onderwerp is het onderwerp (dûh) en ook bericht spreekt voor zich.
Nu moeten we dat maar eens gaan toepassen in een klein scriptje.
<?
# mail() voorbeeldscriptje
# Kijken of het formuliertje verzonden is en alle vakjes ingevuld zijn
if($_POST['submit'] && $_POST['aan'] && $_POST['onderwerp'] && $_POST['bericht'])
{
# formulier verzonden -> email sturen
# Je kan natuurlijk eerst nog allerlei checks enzo doen maar het is maar een voorbeeldje :)
$mail = mail($_POST['aan'], $_POST['onderwerp'], $_POST['bericht']);
if($mail)
echo("Email succesvol verzonden!");
else
echo("Emailen mislukt!");
}
else
{
# Niet verzonden -> formuliertje weergeven
?>
<form method="post" action="<?= $_SERVER['PHP_SELF']; ?>">
<input type="text" name="aan" /><br />
<input type="text" name="onderwerp" /><br />
<textarea name="bericht"></textarea><br />
<input type="submit" name="submit" value="Verstuur!" />
</form>
<?
}
# Einde voorbeeld
?>Op de volgende pagina : bcc, cc en iets over headers bv voor HTMLmail
Pagina 3
Stapje drie : mail(), een beetje dieper
Om naar meerdere personen te mailen kun je natuurlijk bcc en cc gebruiken maar ook dit kan:
<?
$aan = "[email protected],"; # Hier dus een comma
$aan .= "[email protected]" # Hier niet (dit is de laatste, vandaar);
?>
Nu het bcc een cc gedeelte, ook dit is erg simpel:
<?
# Dit zet je in de headers van de mail() functie
# De 'nieuwe' syntax wordt dus: mail( aan , onderwerp , bericht , headers );
$headers = "Bcc: [email protected]\r\n"; # Voor Bcc
$headers .= "Cc: [email protected]\r\n"; # voor Cc
?>
Ook kunnen we zelf een afzender verzinnen :
<?
$headers .= "From YourSite.NL <[email protected]>\r\n";
?>
Sommigen onder ons willen liever HTML mail meesturen -> dat kan!
<?
# voor HTML
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
?>
Let op! wanneer je HTML wilt mailen moet je een volledige HTML pagina meesturen dus met <html> erin!
Hieronder nog een paar mogelijke headers:
<?
# Voor beantwoorden :
$header .= "Return-Path: Jij <[email protected]>\r\n";
$header .= "Reply-To: Jij <[email protected]>\r\n";
# En deze voor de prioriteit van de mail en de phpversie
$header .= "X-Priority: 3\r\n"; # 1 voor erg belangrijk
$header .= "X-MSMail-Priority: High\r\n";
$header .= "X-Mailer: PHP/".phpversion();
?>
En dat was het dan.
Hiermee zou het moeten lukken :)
(Met het MIME (Multipurpose Internet Mail Extension) protocol kunnen we zelfs bijlagen meesturen. Kijk daarvoor naar het script van Eris :))
<?
$aan = "[email protected],"; # Hier dus een comma
$aan .= "[email protected]" # Hier niet (dit is de laatste, vandaar);
?>
Nu het bcc een cc gedeelte, ook dit is erg simpel:
<?
# Dit zet je in de headers van de mail() functie
# De 'nieuwe' syntax wordt dus: mail( aan , onderwerp , bericht , headers );
$headers = "Bcc: [email protected]\r\n"; # Voor Bcc
$headers .= "Cc: [email protected]\r\n"; # voor Cc
?>
Ook kunnen we zelf een afzender verzinnen :
<?
$headers .= "From YourSite.NL <[email protected]>\r\n";
?>
Sommigen onder ons willen liever HTML mail meesturen -> dat kan!
<?
# voor HTML
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
?>
Let op! wanneer je HTML wilt mailen moet je een volledige HTML pagina meesturen dus met <html> erin!
Hieronder nog een paar mogelijke headers:
<?
# Voor beantwoorden :
$header .= "Return-Path: Jij <[email protected]>\r\n";
$header .= "Reply-To: Jij <[email protected]>\r\n";
# En deze voor de prioriteit van de mail en de phpversie
$header .= "X-Priority: 3\r\n"; # 1 voor erg belangrijk
$header .= "X-MSMail-Priority: High\r\n";
$header .= "X-Mailer: PHP/".phpversion();
?>
En dat was het dan.
Hiermee zou het moeten lukken :)
(Met het MIME (Multipurpose Internet Mail Extension) protocol kunnen we zelfs bijlagen meesturen. Kijk daarvoor naar het script van Eris :))
Reacties
0