Ik gebruik PHPmailer met een gmail server om mails te laten versturen. Met het script hieronder werkte het eerst perfect. Alleen nu na een tijd (geen code verandert) geeft het deze error aan:
Fatal error: Uncaught phpmailerException: SMTP Error: Could not authenticate. in D:\Xampp\htdocs\school4us\wp-content\themes\school4us\vendor\phpmailer\phpmailer\class.phpmailer.php:1692 Stack trace: #0 D:\Xampp\htdocs\school4us\wp-content\themes\school4us\vendor\phpmailer\phpmailer\class.phpmailer.php(1540): PHPMailer->smtpConnect(Array) #1 D:\Xampp\htdocs\school4us\wp-content\themes\school4us\vendor\phpmailer\phpmailer\class.phpmailer.php(1335): PHPMailer->smtpSend('Date: Wed, 30 J...', 'This is a multi...') #2 D:\Xampp\htdocs\school4us\wp-content\themes\school4us\vendor\phpmailer\phpmailer\class.phpmailer.php(1213): PHPMailer->postSend() #3 D:\Xampp\htdocs\school4us\wp-content\themes\school4us\functions\mail\sendMail.php(34): PHPMailer->send() #4 D:\Xampp\htdocs\school4us\wp-content\themes\school4us\functions\mail\sendMail.php(7): sendMail('<!doctype html>...', 'Uw contactverzo...', 'janmoes96@live....', 'info@school4us....') #5 D:\Xampp\htdocs\school4us\wp-content\themes\school4us\page-contact.php(46): sendTemplateMai in D:\Xampp\htdocs\school4us\wp-content\themes\school4us\vendor\phpmailer\phpmailer\class.phpmailer.php on line 1692
<?php
require_once(__DIR__.'/../../vendor/phpmailer/phpmailer/PHPMailerAutoload.php');
function sendTemplateMail($body, $data, $subject, $receiver, $sender){
$template = Timber::compile($body, $data);
sendMail($template, $subject, $receiver, $sender);
}
function sendMail($template, $subject, $receiver, $sender){
$mail = new PHPMailer(true); // Enable verbose debug output
$mail->isSMTP(); // Set mailer to use SMTP // TCP port to connect to
$mail->Host = 'smtp.gmail.com';
$mail->Port = 587;
$mail->SMTPSecure = 'tls';
$mail->SMTPAuth = true;
$mail->SMTPOptions = array('ssl' => array('verify_peer' => false, 'verify_peer_name' => false, 'allow_self_signed' => true));
$mail->Username = "[email protected]";
$mail->Password = "test";
$mail->setFrom($sender);
$mail->addAddress($receiver); // Add a recipient
$mail->addReplyTo($sender);
$mail->isHTML(true);
$mail->Subject = $subject;
$mail->Body = $template;
$mail->AltBody = $template; //$mail->AltBody = $template; //
return $mail->send();
}
want normaal als iets lokaal het perfect doet zou het ook moeten werken op het domein
Tenzij je precies hetzelfde OS met dezelfde voorzieningen hebt, dezelfde webserver met dezelfde modules, en wellicht dezelfde hardware: dan ja. Anders is dit niet echt vanzelfsprekend.
Maar zou je niet met dezelfde trace/error level kunnen kijken wat er aan de hand is? En daar dan eens op Googlen, mogelijk is het iets simpels.
Het probleem is opgelost, ik heb de smtp gegevens opgevraagd en dat werkt. Nu heb ik 1 dingetje in de code verandert, zowel in het php bestand en twig bestand. En krijg dus nu een http error 500. Maar kom er maar niet achter of ik een typfout/code fout heb gemakt. en/of waar:
PHP: https://pastebin.com/vfD3R6wG
Twig: https://pastebin.com/ZzR5mPkb
die error kan ik op de online versie niet zien. Ik heb in de php de mail receiver en sender omgedraaid. die stonden namelijk verkeerd. En in het twig bestand bij de <select> tag de titulatuur aangepast. Dat is alles.
ja die heb ik, doordat kwam ik er achter dat ik te maken had met byte order marks. Dus m'n probleem is gefixt. Nu heb ik een ander dingetje. Ik wil namelijk Google Recaptcha gaan gebruiken op de 2 formulieren op de site. Om spammers tegen te gaan. Ik heb de tutorial op de website gelezen. Maar moet ik het niet anders doen? Ik maak namelijk gebruik van een zelf gemaakt wordpress thema. In het thema zitten php bestanden zoals page-home.php. Op dat bestand worden bijvoorbeeld waardes uit het wordpress dashboard geladen en in variablen word opgeslagen. Onder op elke pagina bestand render ik een twig bestand met een array die de waardes bevat die ik uit wordpress haal. Dus is het een beetje de vraag waar ik dat php recaptcha bestand van google moet opslaan en hoe ik het toepas in mijn wordpress/php/twig project.