Onlangs verhuisde ik met mijn domeinen en websites naar Vimexx. Bij de vorige hosting werkte mijn contactformulieren met de PHP mail()-functie (versturen als e-mail). De hulp van de helpdesk volstond niet om ook bij mijn nieuwe hosting deze functie operationeel te krijgen. Door zelf wat onderzoek te verrichten bekwam ik onderstaande oplossing die ik met jullie wil delen.
- Mails worden bij Vimexx via SMTP en PHP mail() werkt daar niet vlot mee (config moet gebeuren in php.ini of via ini_set()). Het is dus echt wel aan te raden om een alternatief te gebruiken (zie stackoverflow) zoals bv PHPMailer: https://github.com/PHPMailer/PHPMailer
- Om de SMTP service te kunnen gebruiken, moet je aanloggen (authenticatie). Dit gebeurt best over SSL, dus vraag zeker ook voor mail.mijndomein.xy een certificaat!
- Configureer een e-mailadres voor je domein, bv info@mijndomein.xy. Het e-mailadres dat standaard aangemaakt wordt (mijndomein@mijndomein.xy) kan je niet gebruiken!
- Hier vind je een goede uitleg over het gebruik van PHPMailer: https://www.snel.com/nl/support/e-mail-verzenden-met-phpmailer/
Ik heb het volgende testprogramma gebruikt:
$mail = new PHPMailer(true); // Passing true enables exceptions
try {
//Server settings
$mail->SMTPDebug = 2; // Enable verbose debug output
$mail->isSMTP(); // Set mailer to use SMTP
$mail->Host = 'mail.mijndomein.xy'; // Specify main and backup SMTP servers
$mail->SMTPAuth = true; // Enable SMTP authentication
$mail->SMTPSecure = 'tls'; // Enable SSL encryption 587, TLS also accepted with port 465
$mail->Port = 587;
$mail->Username = 'mijndomein';
$mail->Password = 'mijndomeinwachtwoord';
//Recipients
$mail->setFrom('iemand@gmail.com', 'iemand'); // invuller vh contactformulier
$mail->addAddress('info@mijndomein.xy', 'Contactformulier'); // e-mailadres mijndomein waarnaar contactformulier gestuurd wordt
//Content
$mail->isHTML(true); // Set email format to HTML
$mail->Subject = 'Subject line goes here';
$mail->Body = 'Body text goes here';
$mail->send();
echo 'Message has been sent';
} catch (Exception $e) {
echo 'Message could not be sent.';
echo 'Mailer Error: ' . $mail->ErrorInfo;
}
Laat maar weten of deze post je geholpen heeft of er nog info ontbreekt.