PHPMailer en SMTP authentificatie
Ik wend mij tot uw forum omdat ik al geruime tijd bezig ben via mijn website een hoeveelheid email met SMTP authentificatie te versturen. Tot op heden wilt dit maar niet lukken.
Ik zend reeds enige tijd met PHPmailer via mijn website deze email, zonder problemen maar sinds kort krijgen een aantal leden de mail niet meer en ik krijg de retour melding gerelateerd aan spam.
Ik probeer dit nu te voorkomen door de email via de provide's smtp server met authenticatie te versturen.
De email wordt zonder 'IsSMTP' gewoon verzonden. Zodra ik dit weer activeer, 'hangt' de pagina en komt na verloop van tijd met de melding dat de pagina niet bereikbaar is.
Ik probeer gebruik te maken van de smpt server van de provider. Deze heeft mij bevestigd dat van PHPmailer niets geblokeerd wordt.
Dit is mijn code:(met phpmailer 6.0)
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<?php
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\SMTP;
use PHPMailer\PHPMailer\Exception;
require '../script/phpmailer603/src/PHPMailer.php';
require '../script/phpmailer603/src/SMTP.php';
require '../script/phpmailer603/src/Exception.php';
date_default_timezone_set('Etc/UTC');
$mail = new PHPMailer(true);
$mail->SMTPDebug = 2;
$mail->SMTPAuth = true;
$mail->isSMTP();
$mail->SMTPSecure = 'TLS';
$mail->Host = 'auth.smtp.1and1.fr';
$mail->Port = 465;
$mail->Username = 'username';
$mail->Password = 'xxxxx';
$mail->setFrom('[email protected]', 'mijn naam');
$mail->addAddress('[email protected]', 'naam');
$mail->Subject = 'PHPMailer SMTP test';
$mail->Body = 'message';
$mail->AltBody = 'This is a plain-text message ALTbody';
//send the message, check for errors
if (!$mail->send()) {
echo 'Mailer Error: ' . $mail->ErrorInfo;
} else {
echo 'Message sent!';
}
?>
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\SMTP;
use PHPMailer\PHPMailer\Exception;
require '../script/phpmailer603/src/PHPMailer.php';
require '../script/phpmailer603/src/SMTP.php';
require '../script/phpmailer603/src/Exception.php';
date_default_timezone_set('Etc/UTC');
$mail = new PHPMailer(true);
$mail->SMTPDebug = 2;
$mail->SMTPAuth = true;
$mail->isSMTP();
$mail->SMTPSecure = 'TLS';
$mail->Host = 'auth.smtp.1and1.fr';
$mail->Port = 465;
$mail->Username = 'username';
$mail->Password = 'xxxxx';
$mail->setFrom('[email protected]', 'mijn naam');
$mail->addAddress('[email protected]', 'naam');
$mail->Subject = 'PHPMailer SMTP test';
$mail->Body = 'message';
$mail->AltBody = 'This is a plain-text message ALTbody';
//send the message, check for errors
if (!$mail->send()) {
echo 'Mailer Error: ' . $mail->ErrorInfo;
} else {
echo 'Message sent!';
}
?>
Ik heb verschillende websites met oplossingen bekeken en geprobeerd, maar vraag nu toch uw hulp.
Iemand een idee wat ik verkeerd doe ??
Dank u bij voorbaat
(Ben Nederlander die in Frankrijk woont)
René
Misschien kan je je debugging van phpMailer ook op 3 zetten?
Gewijzigd op 28/03/2018 16:43:33 door - Ariën -
Spam markering heeft overigens niets met authenticatie te maken. Je zult in een andere richting moeten zoeken zoals de inhoud van de mails, DKIM en/of DomainKeys, SPF en dergelijke.
Ik heb debugging aangepast naar 3 en error reporting regels opgenomen aan het eind van het script.
Waar kan ik nu dit error report inzien?
Ik heb overigens tijdens mijn zoektocht gelezen dat smtp authenficatie een mogelijkheid zou kunnen zijn.Misschien verkeerd begrepen.
Daarnaast krijgt de email die ik zend de status 'Bulkmail' mee. Ik zend ongeveer 60 emails per keer.
Overigens zijn het de grote providers die blokkeren zoals orange.fr en free.fr.
Van deze 60 emails komen er ongeveer 50 goed aan zonder problemen.
Mogelijk buiten de webroot. Elke server/platform is anders ingericht, dus er is geen vaste plek voor de error-log die op elk systeem gelijk is.
Als er 50 van de 60 goed aankomen zou ik eens kijken naar een vertraging in het versturen, bijvoorbeeld max 50 per minuut of zelfs minder. Het duurt dan wat langer maar het geeft veel meer zekerheid.
Stuur jij de mail via je eigen provider? Het wil ook wel eens gebeuren dat dit dan gezien wordt als spam als het niet van het domein afkomstig is. Is er niets aangepast bij de provider?
Ik vermoed dat de mail verzonden wordt vanaf de eigen provider van degene die de email stuurt via de website. Dat kunnen verschillende personen zijn. Daarom wil ik forceren dat de mail via de smtp server van het domein wordt verzonden.
Mogelijk dat ik de emails per 10 moet versturen. Zal dat eens proberen
Jammer dat ik de foutmeldingen niet kan terug vinden. In ieder geval niet in de root van de site.
Dan krijg je, als het goed is, de locatie van het log. Zo ja, dan: om het log gewoon in de browser te tonen.
Probeer eens: Bij mij is deze gewoon leeg, maar is er op de achtergrond wel een error log te vinden. Bij DirectAdmin kan je deze bij de Domain-statistics vinden. En anders is het even zoeken. Of in .htaccess / php.ini aanmaken.
587 of eventueel 25 liggen meer voor de hand