PHP/Mail/Spam probleem
Ik heb een probleem. Ik draai een webapplicatie op een server met Plesk 9 en Windows Server 2008. Nu verstuurt deze ook geregeld e-mail berichten via de mail functie van PHP. Het is probleem is nu dat deze bij Hotmail in de “spam” of “trash” map verdwijnen.
Ik heb het volgende reeds uitgevoerd om dit probleem te voorkomen:
- SPF Record op de DNS server waarbij het IP van de server geautoriseerd wordt om mailtjes uit naam van dat domein te versturen
- Reverse DNS op de server waarbij het domein wordt geverifieerd
- Een SPAM check gedaan (online) waarbij ik netjes op een 3.2 uitkwam (onder de 4.5 was prima in orde)
In het script staan de volgende headers:
$headers="From: Domein.nl <[email protected]>\n";
$headers .= 'MIME-Version: 1.0' . "\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\n";
$headers .= "Message-Id: <" . uniqid(rand(), true) . "@" . domein.".".nl . ">\n";
ini_set("sendmail_from","[email protected]");
mail($ontvanger_email, $onderwerp, $bericht, $headers);
Weet iemand misschien waar ik verbeteringen aan zou kunnen brengen zodat het bericht wel door de spamfilters heen komt? Of misschien een site waar ik nogmaals een uitgebreide check uit kan laten voeren?
Alvast bedankt!
Gewijzigd op 01/01/1970 01:00:00 door Wouter R
Gebruik een e-mail class als bijvoorbeeld Swift, beter voor je applicatie en minder kans dat je e-mail als spam word gezien.
De headers kunnen nog behoorlijk wat aangevuld worden.
Ben benieuwd....
Chris Kortaan schreef op 10.03.2009 14:10:
Gebruik een e-mail class als bijvoorbeeld Swift, beter voor je applicatie en minder kans dat je e-mail als spam word gezien.
Bedankt voor de reacties! Ik ga ermee aan de slag, maar ik zit met een probleem. Bij een nieuw hotmailaccount en bij sommige oudere accounts komen de mailtjes wel aan, kortom het is niet echt consistent. Dat maakt het testen wat moeilijker, iemand suggesties daarvoor?
Voeg in ieder geval een X-Originating-IP header toe, dan ben je er meestal wel. Maar persoonlijk zou ik dat hele script weggooien en swiftmailer installeren. Scheelt je veel tijd/moeite en werkt beter :).
Daarnaast zou het ook handig zijn als er een plek is waar ik mijn headers kan testen? Is er geen gratis testing tool om een spam score te bepalen??
Als het systeem meerdere mailtjes dient te versturen, dan roep ik de verzend pagina aan in een for() functie. Nu ging dit met mail() erg goed, maar bij PHPMailer krijg ik de volgende melding:
Cannot redeclare class PHPMailer
Kan ik die class ook uitschakelen voordat hij weer opnieuw wordt opgeroepen oid?
Aan je error te zien, roept ie de class meerdere keren aan, 1x is genoeg.
Gewijzigd op 01/01/1970 01:00:00 door Timen kut
Er is geen mogelijkheid dat hij ook binnen de loop weer wordt gesloten zodat een nieuwe ronde in die loop hem zonder problemen weer kan openen??
Mijn applicatie is nu overgestapt op PHPMailer, maar komt nog steeds niet goed door elke spamfilter. Een overzicht van de huidige headers:
Received: from servernaam.home ([extern IP])
by ontvanger server naam with ESMTP id RXXXXXXX
for <[email protected]>; Tue, 10 Mar 2009 21:58:58 +0100
Received: from WIN-servernaam ([127.0.0.1]) by home with MailEnable ESMTP; Tue, 10 Mar 2009 21:58:47 +0100
Subject: Onderwerp
To: [email protected]
Date: Tue, 10 Mar 2009 21:58:47 +0100
Return-Path: [email protected]
From: "Domein.nl" <[email protected]>
Message-ID: <[email protected]>
X-Priority: 3
X-Mailer: PHPMailer (phpmailer.codeworxtech.com) [version 2.3]
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/html; charset="iso-8859-1"
X-Envelope-To: <[email protected]>
Deze lijken me prima in orde??
Het SPF record ziet er btw zo uit:
v=spf1 a:domein_server_a a:IP1_server_b a:IP2_server_b ~all
De domein_server_a is het domein van de mailserver waarmee we de POP accounts doen. IP1_server_b en IP2_server_b zijn de IP's van de server waar de webapplicatie op draait. De mail wordt vanuit IP1_server_b gestuurd.
Ook de Reverse DNS lijkt in orde...
Echter is het maildomein (=domein_server_a) in het MX record van het domein niet gelijk aan de server van de applicatie. Dit is namelijk de mailserver voor de POP accounts. Zou hier misschien iets in kunnen zitten?
Gelieve Niet Bumpen::
Gewijzigd op 01/01/1970 01:00:00 door Wouter R
Ik ga het niet nog een keer zeggen.
dus:
X-Originating-IP: xx.xx.xxx.xxx
??
---
Daarnaast heb ik nog steeds problemen met het goed testen. Ik heb nu wel een account (van mijn oude school), maar wie weet ben ik nu inmiddels geblacklisted omdat ik het al zo vaak geprobeerd heb. En zoals eerder beschreven: bij bv. een nieuw / gebruik (maar nieuw met het domein) Live account komt hij vaak prima door, terwijl ik aan de andere kant verhalen over blokkades hoor... Het treedt niet echt consistent op, waardoor het testen lastig is.
Iemand nog suggesties daarvoor?
---
Trouwens, ik voeg ook nog een afbeelding in op deze manier:
<img src=\"$domein/images/logo.jpg\"><br><br>
Dat is misschien ook iets?
Gewijzigd op 01/01/1970 01:00:00 door Wouter R
Jup, maar ook het feit dat je geen plain-text versie meestuurt.. Regel eens iemand met een xs4all account / eigen mailserver, ik krijg een hele lijst van extra headers met informatie mbt punten/blacklists etc.
Zoals al eerder aangegeven is het aanmaken van bv. een nieuw hotmail account niet goed genoeg.
Heeft daar misschien nog ideeen voor?
Gewijzigd op 01/01/1970 01:00:00 door - -
Bedankt voor dit aanbod! Ik heb je gemaild... zou je mij hierover terug kunnen mailen?
Uiteraard :)
3.2 HELO_LH_HOME HELO_LH_HOME
Kan iemand mij misschien op gang helpen?
---
Dat is de officiele omschrijving van de rule. Het komt erop neer dat je 'Received from: ' header niet correct is.
Het zou moeten zijn (bijvoorbeeld):
Received: from server1.domein.nl
Bij jou is het waarschijnlijk geen domein, dus bijvoorbeeld:
TEST.home
local.iets
Check je headers