Ik heb een website en die levert mij problemen op met de php mail functie. Iedere keer wanneer ik het een en ander opnieuw instel werkt het prima, echter alleen voor een paar dagen. Daarna krijg ik wel een succes bericht maar de mail wordt niet verstuurd. Als ik dan de betreffende pagina's van de server haal en vervolgens opnieuw upload werkt het weer een paar dagen en daarna weer niet. Ik heb met geen enkele andere website dit soort problemen. Deze website draait op een KPN server: cp.kpn.com. Ik heb geen idee of iemand dit herkent en/of mij kan vertellen hoe ik dit op kan lossen? Wellicht dat in een extern mail programma moet gebruiken? Elke suggestie is meer dan welkom
Probeer eens een standaard mail met een simpele tekst? Misschien trigger je wel een spamfilter?

De standaard mail() functie van PHP is verder gewoon lastig te debuggen, en zeer gevoelig voor headers. Een kleine onvolkomenheid in de headers zorgt er al voor dat de boel niet verstuurd wordt.

Ikzelf raad aan om PHPmailer te gebruiken. Deze class is helemaal gebaseerd op de RFC's voor het versturen van mails. Verder is het mailen hiermee ook zeer makkelijk te doen en is het erg schaalbaar. Je kan zelf ook direct met SMTP's servers communiceren om direct een mail af te leveren buiten de interne mailserver om. Dit is ook een aanrader. Vooral op shared-hosts die vaak door vele gebruikers ongevraagd gebruikt kan worden als spambron.

Ik zou zeker eens naar deze class kijken.
Hi - Ariën -. Bedankt voor de snelle reactie. Ben nu naar PHPMailer aan het kijken. Ik heb een korte vraag waar jij wellicht meteen een antwword op hebt. In mijn php mail() functie gebruikte ik een View die het gehele email bericht bevatte:

$bericht            = new View('partials/reservering_mail.php', compact('naam', 'e_mail', 'telefoon',
        'personen', 'datum', 'tijd', 'wensen'));


Is iets dergelijks ook mogelijk bij PHPMailer
Heb je al gekeken in de documentatie?
Die inhoud van je view roep je via je class-instance op, en geeft dus een string. Een 'body' is ook een string.

Dus trek je conclusies ;-)
Nou. Ben dus begonnen met PHPMailer te gebruiken. Heb om het een en ander te testen het volgende in een test mail pagina gezet:


<?php

	require_once "private/lib/PHPMailer/PHPMailerAutoload.php";
	
	$mail = new PHPMailer;
	
	$mail->setFrom('[email protected]', 'Canton Chinees Specialiteiten Restaurant');
	$mail->addAddress('[email protected]', 'Donald Boers');
    $mail->Subject  = 'PHPMailer Message';
    $mail->Body     = 'Test.';
	
	if(!$mail->send()) {
  		echo 'Bericht is niet verzonden.';
  		echo 'Mailer error: ' . $mail->ErrorInfo;
	} else {
  		echo 'Bericht is verzonden.';
	}


Lijkt me niets fout aan toch? Enige probleem is dat als ik de pagina test ik wel de succes boodschap krijg, maar het bericht dus niet wordt verzonden. Zou het dan toch aan KPN liggen, daar wordt de site gehost
Probeer eens via SMTP en zet je SMTPdebug eens vol aan.
He - Ariën -, goedemorgen. Dat heb ik dus gedaan dit is het resultaat:


SERVER -> CLIENT: 220 plwww03.localdomain ESMTP Postfix
CLIENT -> SERVER: EHLO www.cantonamsterdam.nl
SERVER -> CLIENT: 250-plwww03.localdomain250-PIPELINING250-SIZE 10240000250-VRFY250-ETRN250-ENHANCEDSTATUSCODES250-8BITMIME250 DSN
CLIENT -> SERVER: MAIL FROM:<[email protected]>
SERVER -> CLIENT: 250 2.1.0 Ok
CLIENT -> SERVER: RCPT TO:<[email protected]>
SERVER -> CLIENT: 250 2.1.5 Ok
CLIENT -> SERVER: DATA
SERVER -> CLIENT: 354 End data with <CR><LF>.<CR><LF>
CLIENT -> SERVER: Date: Wed, 28 Jun 2017 12:06:54 +0200
CLIENT -> SERVER: To: Donald Boers <[email protected]>
CLIENT -> SERVER: From: Canton Chinees Specialiteiten Restaurant <[email protected]>
CLIENT -> SERVER: Subject: PHPMailer Message
CLIENT -> SERVER: Message-ID: <[email protected]>
CLIENT -> SERVER: X-Mailer: PHPMailer 5.2.13 (https://github.com/PHPMailer/PHPMailer)
CLIENT -> SERVER: MIME-Version: 1.0
CLIENT -> SERVER: Content-Type: text/plain; charset=iso-8859-1
CLIENT -> SERVER: Content-Transfer-Encoding: 8bit
CLIENT -> SERVER: 
CLIENT -> SERVER: Test.
CLIENT -> SERVER: 
CLIENT -> SERVER: .
SERVER -> CLIENT: 250 2.0.0 Ok: queued as 618552054B
CLIENT -> SERVER: QUIT
SERVER -> CLIENT: 221 2.0.0 Bye
Message has been sent.

Heb alleen geen idee waar ik naar moet kijken.
Ik zou dan toch eens kijken naar overijverige spamfilters, en of je SPF en DKIM-records in je DNS goed ingesteld zijn. Je hosting zou je hier e.v.t. bij kunnen helpen.

Bij Gmail weet ik dat ze anders in de Spam-box binnenkomen, en Hotmail weigert ze helemaal.
Hoi - Ariën -

Heb een beetje op het KPN forum rondgekeken. Toen kwam ik een vraag tegen die een beetje het zelfde was als die van mij. Iemand rade de OP aan om


v=spf1 include:spf.protection.outlook.com -all

te veranderen in

v=spf1 include:spf.protection.outlook.com ip4:213.75.21.21 -all

Maakt dit bij jou weten enig verschil uit?
Wat is de reden dat spf.protection.outlook.com gebruikt wordt? Waarom stel je niet een record samen dat *voor jou* zin heeft? Waarschijnlijk is iets als v=spf1 a mx -all al genoeg.
Hallo. Ben. zo stond het er al, ik heb alleen dat ip4 gedeelte toegevoegd

[size=xsmall]Toevoeging op 28/06/2017 16:18:48:[/size]

Hallo Ben. Heb het aangepast naar jou voorbeeld, maar dat werkt ook niet. Heb wel eens gehoor van mensen die een externe mail service gebruikte. Heb echter geen idee waar ik voor moet zoeken en hoe dat werkt. Elke suggestie is meer dan welkom

Reageren