Webprofis is een Forum waarin je vragen kunt stellen die webgerelateerd zijn. Heb je vragen over of problemen met je Webpagina, HTML, CSS, Javascript, PHP of andere client of serverside scriptingtalen? Stel ze dan gerust op dit forum.
Op dit forum zijn een aantal vrijwilligers actief die u graag met uw vragen willen helpen en u waar mogelijk een passend antwoord aanbieden.
Hebt u zelf veel ervaring en kennis met betrekking tot het bovenstaande? U bent van harte welkom om uw kennis met anderen te delen!
We hopen dat eenieder op dit Forum een leerzame ervaring mag opdoen.
Team Webprofis
We hopen dat eenieder op dit Forum een leerzame ervaring mag opdoen.
Team Webprofis
Opgelost Php form email geraakt in spambox
Ik heb onderstaand php formulier, en de mail geraakt in de spambox ?
Hoe kan ik dit verkomen ?
Hoe kan ik dit verkomen ?
if ( $_SERVER['REQUEST_METHOD'] == 'POST' ) {
if ( empty ( $_POST['email'] ) ) {
# receiver
$to = getUserData( "email" );
# domein
$url = preg_replace( "/(http:\/\/www.)/i", "", getUserData( "domein" ) );
# subject
$subject = "Kontakt formular: " . $url;
# inputs
$firma = $_POST['firma'];
$name = $_POST['name'];
$strabe = $_POST['strabe'];
$plz = $_POST['plz'];
$ort = $_POST['ort'];
$poster = $_POST['poster'];
$message = $_POST['message'];
# headers
$headers = "From:" . stripslashes( $name ) . "<" . stripslashes( $poster ) . ">";
# message body
$body = 'Firmenname: ' . $firma . "\r\n";
$body .= 'Ansprechpartner: ' . $name . "\r\n";
$body .= 'Strabe: ' . $strabe . "\r\n";
$body .= 'PLZ: ' . $plz . "\r\n";
$body .= 'Ort: ' . $ort . "\r\n";
$body .= 'E-mail: ' . $poster . "\r\n";
$body .= 'Bericht: ' . "\r\n" . $message . "\r\n";
# send
if ( @mail( $to, $subject, $body, $headers ) ) {
echo 'sent';
} else {
echo 'failed';
}
} else {
header( "Location: http://" . $url . "/" );
}
}
If it's not fun, you're not doing it right!
Login of Registreer om te reageren.
Reacties
Verder vind ik alleen de From header wel zeer mager...
Wat sowieso tricky is, is een From header van een ander domein....!
Jij verstuurd dus mail van meneerjansen@whatevermijnisp.is via renev.nl dat is waar het tricky wordt, maar ik weet zelf niet uit mijn hoofd welke headers je wel allemaal nodig hebt voor zoiets...lees verder
Ik heb de minimalistische manier van mailtjes versturen allang opgegeven met de komst van phpmailer etc, die komen gewoon altijd aan, ook met blijlages etc etc...
Nu komt het gekke
Zodra ik het formulier in duits gebruik komt hij in de spambox, dus met duitse inhoud.
Maar gebruik ik hem in het Nederlands dan komt hij netjes in de inbox.
Moet je soms in de headers ook een Langugae aangeven ?
Als je geen html mail verstuurt dan zou je dit kunnen gebruiken:
"Content-type: text/plain; charset=iso-8859-1";
Probeer evt ook utf-8 ipv iso ... etc
Nuet, dat moet niets uitmaken, mail moet gewoon OVERAL aankomen ;-)
Ik denk niet dat de fout in het script zit, dit script gebruik ik een beetje standaard bij klanten.
Juist nu loopt het op een Duits domein en gaat het gek doen grrrrrrr.
Wat zou het wel niet geven in Chinees of Japans
Maar ik kan mij zo slecht voorstellen, als je een bericht in Nederlands vermeld, dat het script gewoon werkt en de ontvanger hem in de inbox krijgt en zodra je een bericht in Duits schrijft dan komt hij in de spam-box.
Wel heb ik die headers aangepast met verzender, inderdaad niet slim.
Dan heb je nu misschien even werk (5 mins?) om jezelf wegwijs te maken met die class, maar daarna kun je gewoon alles doen met die classes zonder na te denken
Misschien kun je hier wat mee
Daarbij zijn er weer diverse instellingen in de class van phpmailer, die ik dan weer in het cms moet verwerken.
Tja en er zijn klanten die echt niks op gebied van email instellingen, hosting of websites weten en juist gebruik maken van het cms omdat het zo simpel is te gebruiken.
Misschien in de toekomst om er eens over te denken, maar nu is mij dat teveel werk om dat te realiseren.
Wat ging er nu fout, nou de klant heeft meerdere domeinen bijvoorbeeld
naam-een.de naam-twee.de naam-drie.de en hoofd account naam.de
Op naam-een.de en naam-twee.de heeft hij destijds ook een email account aangemaakt, en dit email account vermelde hij dan in het cms, en het contact formulier gebruikt dit email account als verzender.
Maar op naam-drie.de heeft hij nooits een email account aangemaakt, en in het cms voor deze site gebruikte hij dus het email van naam-een.de
Dit veroorzaakte dus dat de mail in de spambox kwam.
Snap je hem nog
Thanks voor het meedenken, proost.
Stel je bezit een hosting account met domein, gebruik dan ook nooit een gmail acoount als verzender in een formulier.
De kans is namelijk groot dat het als spam wordt ontvangen!
De ip adressen kloppen dan niet meer waardoor het als een verdachte email gezien wordt.
Als ik het goed begrijp: je stuurt vanaf een mailserver ( die wat bij jouw domein hoort) en je afzender wordt gekoppeld aan dat ip adres van de mailserver. Als je nu verzend met een andere afzender ( je doet je eigenlijk voor a iemand anders), maar wel via dezelfde mailserver klopt de combinatie ip adres en afzender niet meer en ben je dus eigenlijk aan het spoofen.
Toevallig wilde ik vandaag een grapje uithalen met iemand via een contactformulier met als afzender hetzelfde mailadres als waar de mail naartoe gaat. Ik tesste dit even uit op mijn Gmail en jahoor: kwam melding van: "Mogelijk is dit emailadres niet de werkelijke afzender van dit bericht" met een linkje naar: Report phishing
Wat heeft een al dan niet juist emailadres te maken met een duitse versus nederlandse inhoud?
Zoiets in die aard was het, en dat vondt ik na lang zoeken
@vinTage
Al sla je me dood, misschien dat het komt omdat het hoofd account een .nl domein is en de andere domeinen .de
Ik weet het echt niet, was voor mij een raadsel, was al zover dat ik in google.DE aan het zoeken was.
Het werkt nu en ik gebruik onderstaand scriptje, als iemand hier nog verbeteringen in vindt verneem ik dit graag!
Ik zou alle data die de bezoeker kan posten door addslashes en htmlentities halen, door vervelende lui wordt er vaak misbruik gemaakt van slecht beveilgde formulieren.
Ik zet altijd/meestal error_reporting uit op mijn creaties maar als je een cookie plaatst met de naam "debug" dan zet ik hem aan.
Zo ziet de gebruiker alleen mijn "ifjes"
Bij poster wordt alleen whitespace geschrapt
Bij message worden alle karakters omgezet naar HTML en geen whitespace
Dits is vlg mij functioneler dan stripslahes die je voorheen had
Want in poster (is trouwens email) en naam is dit toch overbodig ?
htmlentites hoeft niet perse, maar jij doet geen enkele controle (zoals ikzelf wel altijd doe), dus is htmlentites nog het simpelst.
zelf haal ik altijd de naw meuk door een regex, het mailadres door filtervar en het bericht door htmlentities.
*** denk aan personen die dit soort namen hebben:
Bcc: $emailList\r\n
Alleen omdat ik nu dat contact script ben aan het checken (door die Duitse meut) dacht ik verbeter het eens.
Het enigste waar ik steeds van baal zijn die umlauts, die moet ik er nog in verwerken.
En tot heden:
javascript is puur eyecandy, dat zou je toch ondertussen moeten weten ;-)
Ik ben vanavond even bezig geweest met een regex die denk ik goed bruikbaar is, ik ga hem voortaan zelf ook maar gebruiken, ik ben er tevreden mee
sorry, kon het niet laten...
maareuh, de formatting lijkt imho toch te falen ;-)