login  Naam:   Wachtwoord: 
Registreer je!
 Tutorials

Tutorials > PHP


Gegevens:
Geschreven door:
Wijnand
Moeilijkheidsgraad:
Normaal
Hits:
92961
Punten:
Aantal punten:
 (3.72)
Aantal stemmen:
18
Stem:
Niet ingelogd
Nota's:
 Lees de nota's (12)
 


Tutorial:

Mail-functie

1. Inleiding
2. Basis
3. Headers
4. Error


1. Inleiding

In deze tutorial wil ik het gaan hebben over de mail-functies. Dus over hoe je hoe moet gebruiken. Ik ga in deze tutorial niet al te uitgebreid in op alle headers, omdat deze tutorial anders te uitgebreid wordt.

top
2. Basis

Voorbeeld:
<?php
mail
($naar_emailadres, $onderwerp, $bericht, $headers);
?>

Op deze manier moet je de mailfunctie invullen. Als eerste moet je het e-mailadres invullen waar dit mailtje naar toe moet. Als tweede moet je een onderwerp toevoegen. Als derde een bericht en als laatste de headers.

Zoals je ziet is het eigenlijk heel simpel om een mailtje te versturen. Laten we nu maar een formulier gaan maken waarmee je een mail kunt versturen.

Voorbeeld:

<?php
if (IsSet($_POST['submit']))
{
    $naam_ontvanger = $_POST['naar_naam'];
    $email_ontvanger = $_POST['naar_emailadres'];

    $naam_verzender = $_POST['van_naam'];
    $email_verzender = $_POST['van_emailadres'];

    $onderwerp = $_POST['onderwerp'];
    $bericht_verzender = $_POST['bericht_verzender'];


    $headers = "From: ".$naam_verzender." <".$email_verzender."> ";

    $bericht = "
Beste "
.$naam_ontvanger.",

"
.$naam_verzender." heeft jou een berichtje gestuurd. Hieronder is zijn berichtje te lezen.

--------bericht--------
"
.$bericht_verzender."
--------bericht--------

mvg,
Sitemasters.be
    ";

    mail($email_ontvanger, $onderwerp, $bericht, $headers);

}
else
{
    ?>
    <form action="" method="post">
    Naam ontvanger: <input type="text" name="naar_naam"><br />
    Email ontvanger: <input type="text" name="naar_emailadres"><br /><br />
    Naam verzender: <input type="text" name="van_naam"><br />
    Email verzender: <input type="text" name="van_emailadres"><br /><br />
    Onderwerp: <input type="text" name="onderwerp"><br />
    bericht:<br />
    <textarea name="bericht_verzender"></textarea>
    <br /><br />
    <input type="submit" name="submit" value="versturen">
    </form>
    <?php
}
?>

Dit is een heel klein voorbeeldje van een mail-formulier. Je kunt hem gemakkelijk uitbreiden maar voor deze tutorial is dat eigenlijk onnodig, dus heb ik de overbodige dingen uitgelaten.

In dit voorbeeld wordt er een header toegevoegd.
$headers = "From: ".$naam_verzender." <".$email_verzender."> ";

Deze header zorgt ervoor dat, als iemand dit berichtje binnen krijgt, dat de naam van de verzender mee wordt verstuurd met dit mailtje. Ook het e-mailadres (waar je op kunt reageren) wordt meegestuurd. Dit is een header die je eigenlijk niet uit je mail-formulier kunt weglaten.

Ook zie je dat ik in het bericht enters heb gegeven, en dat deze automatisch (zonder dat je een <br /> hebt meegegeven) in een webapplicatie goed gezet worden.

top
3. Headers

Nu gaan we een aantal headers bekijken en toevoegen.

  $headers = "MIME-Version: 1.0 ";
  $headers .= "Content-type: text/html; charset=iso-8859-1 ";

Deze twee headers zorgen ervoor dat je een bericht met HTML kan toevoegen. Dit klinkt heel leuk, maar het kan voor slordigheden zorgen als je hem verstuurd naar een webapplicaties die geen HTML ondersteunt.

  $headers .= "Return-Path: jouw_naam <error@jouw_site.nl> ";

Deze header zorgt ervoor dat als er een fout is ontstaan bij het versturen van een mailtje, dat je kan aangeven naar welke e-mailadres de fout/error gestuurd wordt.

  $headers .= "Reply-To: jouw_naam <reply@jouw_site.nl> ";

Deze header zorgt ervoor dat als ontvangers een reply terug willen sturen naar jou, dat hun reactie naar dit adres wordt terug gestuurd.

  $headers .= "Cc: birthdayarchive@example.com ";

Deze header zorgt ervoor dat er een Cc. wordt toegevoegd. Cc is een copy (Carbon Copy) van het verstuurde mailtje.

$headers .= "Bcc: birthdaycheck@example.com ";

Deze header zorgt ervoor dat er een Bcc. wordt toegevoegd. Als je bij Bcc een emailadres invult, dan kan niemand zien dat u naar die persoon een copy van het mailtje heeft verstuurd. Bcc staat voor Blind Carbon Copy.

Er zijn nog veel meer headers, maar dit zijn de belangrijkste om te weten. Nu gaan we het even toepassen in ons formuliertje.

Voorbeeld:

<?php
if (IsSet($_POST['submit']))
{
    $naam_ontvanger = $_POST['naar_naam'];
    $email_ontvanger = $_POST['naar_emailadres'];

    $naam_verzender = $_POST['van_naam'];
    $email_verzender = $_POST['van_emailadres'];

    $onderwerp = $_POST['onderwerp'];
    $bericht_verzender = $_POST['bericht_verzender'];


    $headers = "From: ".$naam_verzender." <".$email_verzender."> ";
    $headers .= "MIME-Version: 1.0 ";
    $headers .= "Content-type: text/html; charset=iso-8859-1 ";
    $headers .= "Return-Path: Mail-Error <error@mijnsite.nl> ";
    $headers .= "Reply-To: ".$naam_verzender." <".$email_verzender."> ";
    $headers .= "Bcc: ".$email_verzender." ";



    $bericht = "
Beste "
.$naam_ontvanger.",

"
.$naam_verzender." heeft jou een berichtje gestuurd. Hieronder is zijn berichtje te lezen.

--------bericht--------
"
.$bericht_verzender."
--------bericht--------

mvg,
Sitemasters.be
    ";

    $bericht = nl2br($bericht);
    mail($email_ontvanger, $onderwerp, $bericht, $headers);
}
else
{
    ?>
    <form action="" method="post">
    Naam ontvanger: <input type="text" name="naar_naam"><br />
    Email ontvanger: <input type="text" name="naar_emailadres"><br /><br />
    Naam verzender: <input type="text" name="van_naam"><br />
    Email verzender: <input type="text" name="van_emailadres"><br /><br />
    Onderwerp: <input type="text" name="onderwerp"><br />
    bericht:<br />
    <textarea name="bericht_verzender"></textarea>
    <br /><br />
    <input type="submit" name="submit" value="versturen">
    </form>
    <?php
}
?>

Nu moet je goed opletten op 1 ding. Omdat wij van ons formulier een HTML-formulier hebben gemaakt, worden alle enters niet meer mee geteld, wat ervoor zorgt dat we alle tekst achter elkaar aan krijgen. Daarom heb ik onder het bericht een nl2br toegevoegd.

top
4. Error

Het kan gebeuren dat als je, jouw server niet goed geconfigureerd heb, deze foutmelding krijgt als je een e-mail probeert te versturen:
“can't connect to local MySQL server”

Dit lijkt een zwaar probleem maar het is eigenlijk heel simpel op te lossen.

De eerste stap is om je php.ini te openen. Deze kan aanwezig zijn in je windows-map of in je apache-map. Dan zoek (Ctrl + F) je op [mail function].

Daar staat SMTP ergens bij. Het adres erachter verander je met de SMTP gegevens van jouw provider. Bij mij was dit mail.chello.nl

Als je jouw server nu opnieuw opstart, dan kun je mail versturen via jouw webserver.

top
5. Einde

Dit was de (korte) tutorial over de mail-functie alweer. Zoals je ziet is het eigenlijk een hele simpele maar handige functie om te kennen. Als je nog iets mist in deze tutorial dan kun je dat naar mij doorsturen via een Privé Bericht. Als je nog vragen hebt, kun je die stellen op het forum en NIET via een Prive Bericht.

top

« Vorige tutorial : [OOP] Een begin maken met OOP Volgende tutorial : Pagina navigatie in PHP en MySQL »

© 2002-2019 Sitemasters.be - Regels - Laadtijd: 0.013s