Beantwoord

PHP Mail() functie problemen

  • 28 juni 2017
  • 9 reacties
  • 239 keer bekeken

Op een website heb ik problemen met de PHP mail() functie. Hij werkt steeds maar tijdelijk (dus berichten worden verzonden). Maar vervolgens na een paar dagen krijgt de bezoeker nog wel de succes boodschap te zien maar de mail wordt niet verzonden. Ik ben me er van bewust dat de standaard mail() functie van PHP lastig te debuggen is dus om uit te sluiten dat het een fout in b.v. de headers betrof heb ik ook de PHPMailer class geprobeerd, maar helaas zonder succes. ook dat wordt niet verzonden. Ik heb in mijn leven al honderen websites gemaakt, maar dit heb ik nog niet eerder meegemaakt. Waar zou dit aan kunnen liggen? Ik probeer al een aantal dagen in contact te komen met support via chat, maar er zijn bijna nooit agents aanwezig

Alvast bedankt.
icon

Beste antwoord door Lindsay 4 juli 2017, 16:48

Goedemiddag heren!

@donboe, ik heb het mailscript kunnen posten! Hij is in actie te zien op koalavandedag.nl.

Een vrij simpel formuliertje dus, volledig in te richten naar eigen behoeftes. Hij komt wel mét SMTP autorisatie (!!),
wat @dimitriton1 goed opmerkte als belangrijk punt, en als bonus zit er nog captcha in.

Klik op deze link om het mailscript als .zip te downloaden. Er zit een Leesmij bij met instructies.😄

Ik ben benieuwd hoe die het gaat doen! Pluk er ook vooral stukjes uit die u handig vindt.
Bekijk origineel

9 reacties

Reputatie 6
Badge +5
Hoi @donboe,

Dat is een lastig probleem om uit te vogelen inderdaad! Interessant is dat u aangeeft dat de mail niet alleen niet wordt ontvangen, maar überhaupt niet verzonden wordt. Het eerste wat ik zou checken is uw SPF record.

Heeft u een SPF record en staat het ip adres van uw website hier in? Dat kan al helpen!

Als het antwoord ja is, is het misschien een idee om een ander mailscript te proberen. Wij hebben er zelf eentje in elkaar geknutseld waar ook smtp verificatie in zit. Die zal ik eens opduikelen voor u!
Hoi @Lindsay. Hartelijk bedank voor je reactie. Zoals ik al aangaf heb ik het eerst met de ingebouwde php mail() functie geprobeerd. Daarna heb ik het met PHPMailer class geprobeerd maar ook zonder resultaat.

Het SPF record stond in eerste instantie als volgt:
v=spf1 include:spf.protection.outlook.com -all

dat heb ik vervolgens als volgt veranderd:
v=spf1 include:spf.protection.outlook.com ip4:213.75.21.21 -all

Helaas ook zonder resultaat en het laatste wat ik heb geprobeerd is:
v=spf1 a mx -all

Maar dat werkte dus ook niet. Weet even niet wat te doen. Ik zou graag dat mailscript zien dat jullie zelf hebben gemaakt.

Gr. Donald Boers
Reputatie 7
Badge +6
Je gebruikt office365. Is het mogelijk een idee om de spamfilter te controleren via de desbetreffende mail "gebounced" is? Dan weet je zeker of het in ieder geval is aangekomen bij de mailserver 🙂

Ga in de office365 naar:
https://protection.office.com

Klik op reports -> Dashboard. Onder spam detection reports zie je het volgende:



(Ik weet dat mijn mailadressen hier in staan. Ze zijn toch links of rechts om online te vinden 🙂 )
Reputatie 6
Badge +5
Hi @donboe!

Ik heb het mailscript gevonden en ben even aan het hannesen om die op een volledige manier hier te posten (even knutselen met de restricties van het forum),

Ondertussen is de suggestie van Sjors ook een hele goede! Zo kunnen we goed zien waar de mails precies stranden. Ik ben benieuwd wat daar uit komt en post zsm mijn bijdrage!
Badge +1
PHP mailer wel volledig correct ingesteld met je office365 gegevens?

code:

require '/phpmailer/PHPMailerAutoload.php';

$mail = new PHPMailer;

//$mail->SMTPDebug = 3; // Enable verbose debug output

$mail->isSMTP(); // Set mailer to use SMTP
$mail->Host = 'smtp.office365.com'; // Specify main and backup SMTP servers
$mail->SMTPAuth = true; // Enable SMTP authentication
$mail->Username = 'email'; // SMTP username
$mail->Password = 'wachtwoord'; // SMTP password
$mail->SMTPSecure = 'tls'; // Enable TLS encryption, `ssl` also accepted
$mail->Port = 587; // TCP port to connect to

....


Mijn spf record is:
"v=spf1 include:spf.protection.outlook.com include:ip-adres mx a -all"
Reputatie 7
Badge +6
PHP mailer wel volledig correct ingesteld met je office365 gegevens?

code:

require '/phpmailer/PHPMailerAutoload.php';

$mail = new PHPMailer;

//$mail->SMTPDebug = 3; // Enable verbose debug output

$mail->isSMTP(); // Set mailer to use SMTP
$mail->Host = 'smtp.office365.com'; // Specify main and backup SMTP servers
$mail->SMTPAuth = true; // Enable SMTP authentication
$mail->Username = 'email'; // SMTP username
$mail->Password = 'wachtwoord'; // SMTP password
$mail->SMTPSecure = 'tls'; // Enable TLS encryption, `ssl` also accepted
$mail->Port = 587; // TCP port to connect to

....


Mijn spf record is:
"v=spf1 include:spf.protection.outlook.com include:ip-adres mx a -all"


SPF record is incorrect. Veranderd include voor ip-adres in ip4
Badge +1
Bij mij werkt mijn huidige spf icm mijn php mail script correct zonder enig probleem.

Vraag me dan af waarom het veranderd zou moeten worden in ip4?
Reputatie 7
Badge +6
Include verwijst naar een spf record van een andere domein naam. Ik verwacht echter dat veel mailservers het goedkeuren gezien deze fout vaker gemaakt wordt. Het is altijd een beter idee om de standaard syntax zoals het bedoeld is te volgen.


Uitleg over syntax: http://www.openspf.org/SPF_Record_Syntax
Reputatie 6
Badge +5
Goedemiddag heren!

@donboe, ik heb het mailscript kunnen posten! Hij is in actie te zien op koalavandedag.nl.

Een vrij simpel formuliertje dus, volledig in te richten naar eigen behoeftes. Hij komt wel mét SMTP autorisatie (!!),
wat @dimitriton1 goed opmerkte als belangrijk punt, en als bonus zit er nog captcha in.

Klik op deze link om het mailscript als .zip te downloaden. Er zit een Leesmij bij met instructies.😄

Ik ben benieuwd hoe die het gaat doen! Pluk er ook vooral stukjes uit die u handig vindt.

Reageer