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();
}

Jorn Reed op 02/02/2019 20:03:40
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.
Ik ga het bedrijf morgen even bellen. Ik denk dat de webhosting mailen blokkeert. Anders moet ik even verder googlen.
Google wijst uit dat dit een firewall of DNS-issue is, en niet specifiek aan phpMailer gerelateerd is.
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
Wat heb je aangepast? En wat is de error volgens je error_log?
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.
Heb je geen error_log? Anders kan je die via .htaccess of een php.ini wel aanzetten.
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.
Is het niet een handiger idee om een nieuw topic aan te maken, omdat je nu een totaal andere vraag stelt?
Dat schept wat meer overzicht in het forum.
Let me Google that for you...

Reageren