Bij Vevida kun je met PHP e-mail versturen. Hiermee stuur je mail vanaf je website. We leggen je uit hoe je dit kunt doen in dit artikel.
Inhoudsopgave
Inleiding
Mail versturen vanaf je website doe je met de PHP class PHPMailer. Deze applicatie regelt alle zaken voor je. Zoals het inloggen op een SMTP-server of het gebruiken van TLS-versleuteling. Dit zijn twee voorwaarden om onze server te kunnen gebruiken als SMTP-server voor het versturen van mail vanaf je website.
HTML5 mailformulier
Als je een mailformulier op je website hebt dan ziet er deze vaak uit zoals in onderstaand voorbeeld:
<form id="form1" action="mail.php" method="post"><fieldset><legend>Uw informatie</legend><ol> <li><label for="naam">Naam</label> <input id="naam" title="format: Voornaam Achternaam" name="naam" required="" type="text" autofocus="" placeholder="Voor- en Achternaam" /></li> <li><label for="email">Email</label> <input id="email" title="[email protected]" name="email" required="" type="email" placeholder="[email protected]" /></li></ol></fieldset><fieldset><legend>Bericht</legend><ol> <li><label for="bericht">Bericht</label> <textarea id="bericht" name="bericht" required="" rows="10" placeholder="Uw bericht ..."></textarea></li></ol></fieldset><fieldset><button name="submit" type="submit">Versturen</button></fieldset></form>
In dit formulier zitten drie verplichte velden verwerkt: naam, e-mail en bericht. De ingevulde gegevens worden verstuurd naar het bestand mail.php.
PHP code voor het versturen van de mail
We maken dus gebruik van de PHP class PHPMailer om e-mail te versturen vanaf je website. Deze moet je eerst downloaden en uitpakken. Hierna plaats je de map src inclusief de bestanden in de map, waarin het mailformulier en mail.php ook staan. Dit kun je doen met een FTP-programma.
Je kunt de bestanden van PHPMailer ook ergens anders neerzetten. Maar dan moet je de paden in de include-opdrachten wel aanpassen.
In dit eerste gedeelte hoef je niets aan te passen. Hierin wordt de PHPMailer aangeroepen.
<?phpuse PHPMailer\PHPMailer\PHPMailer;use PHPMailer\PHPMailer\Exception;require 'src/Exception.php';require 'src/PHPMailer.php';require 'src/SMTP.php';
Hieronder vind je diverse velden met relevante uitleg erachter.
- Voer je gebruikersnaam en wachtwoord in om je te kunnen aanmelden op de SMTP server
- Stel in wie de ontvanger van het bericht is
$inlognaam = '[email protected]'; // Gebruikersnaam voor smtp-server.$wachtwoord = 'wachtwoord'; // Het wachtwoord van de smtp-server$doelnaam = 'Naam ontvanger'; // Naam van de ontvanger.$doeladres = '[email protected]'; // Adres van de ontvanger.$onderwerp = 'Onderwerp'; // Onderwerp van het bericht.
Controleer of je alles correct hebt ingevuld
Stel de voglende zaken in:
- >$mail->addAddress gebruiken we om het adres op te geven
- De inhoud van het bericht wordt in de variabele $mail->Body geplaatst
if (isset($_POST['submit'])) { if(empty($inlognaam) or empty($wachtwoord) or empty($doelnaam) or empty($doeladres) or empty($onderwerp) or empty($_POST['naam']) or empty($_POST['email']) or empty($_POST['bericht'])) { // HTML5-validatie heeft niet gefunctioneerd, een of meer gegevens // zijn leeg. Voeg hier zelf goede, nette foutafhandeling toe } versturen($doelnaam,$doeladres,$_POST['naam'],$_POST['email'],$_POST['bericht'],$onderwerp,$inlognaam,$wachtwoord);}function versturen ($doelnaam,$doeladres,$zendnaam,$zendadres,$bericht,$onderwerp,$inlognaam,$wachtwoord){ $mail = new PHPMailer(true); try { //Server settings $mail->SMTPDebug = 0; // Toon debug-informatie. 0 = stil, 1 = basis en 2 = uitgebreid. $mail->isSMTP(); // Gebruik een smtp-server en niet de webserver. $mail->Host = 'smtp.vevida.com'; // smtp-server. $mail->SMTPAuth = true; // Authenticatie inschakelen. $mail->Username = $inlognaam; // Gebruikersnaam. $mail->Password = $wachtwoord; // Wachtwoord. $mail->SMTPSecure = 'tls'; // Encryptie via TLS. $mail->Port = 25; // Poort van de smtp-server. // Ontvangers $mail->setFrom($zendadres, $zendnaam); // Afzender $mail->addAddress($doeladres, $doelnaam); // Ontvanger // $mail->addCC('[email protected]'); // Eventueel CC-adres // $mail->addBCC('[email protected]'); // Eventueel BCC-adres // Inhoud $mail->isHTML(true); // Schakel HTML-mail in. $mail->Subject = $onderwerp; $mail->Body = $bericht; $mail->AltBody = strip_tags($bericht); $mail->send(); // Het bericht is verstuurd. Zet hier een gereedmelding. } catch (Exception $e) { // Het bericht kon niet verstuurd worden. // Roep de waarde van $mail->ErrorInfo aan om te kijken wat er verkeerd ging. }}?>