Beste lezer,

Ik heb een PHP formulier draaien. Dit wordt formulie wordt verstuurd naar een e-mail adres. Echter het mailtje komt in de ongewenst post terecht... wordt dus gezien als SPAM. Ik ben op zoek geweest waar het aan kan liggen... mijn headers zouden niet goed zijn?! Echter ik heb geen headers in mijn script staan....

<?php

// Receiving variables

$full_name = ($_POST['full_name']);
$email = ($_POST['email']);
$phone = ($_POST['phone']);
$select = ($_POST['select']);
$contact_by_email = ($_POST['contact_by_email']);
$contact_by_phone = ($_POST['contact_by_phone']);
$question = ($_POST['question']);


// Validation
if (! ereg('[A-Za-z0-9_-]+\@[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+', $email))
{
header("Location: error.html");
exit;
}



//Sending Email to form owner
# Email to Owner


$afzender = "[email protected]";


$pfw_subject = "Aanmelden 2007";
$pfw_email_to = "[email protected]";
$pfw_message = "Aanmelden\n"
. "\n"
. "Naam: $full_name\n"
. "Adres: $adres\n"
. "Postcode: $postcode\n"
. "Woonplaats: $woonplaats\n"
. "E-mail: $email\n"
. "Telefoon: $phone\n"
. "Heren: $Heren\n"
. "Dames: $Dames\n"
. "Recreanten: $Recreanten\n"
. "Jeugd: $Jeugd\n"
. "Teamnaam: $Teamnaam\n"
. "Gemiddeld teamniveau: $niveau\n";

mail($pfw_email_to, $pfw_subject, $pfw_message, "From: " . $afzender . "") ;
mail($email, $pfw_subject, $pfw_message, "From: " . $afzender . "") ;

header("Location: thank-you.html");

?>
Ligt aan het spamfilter van de ontvangen 99% van de tijd
De goede headers meegeven wil nog wel eens helpen. Ik ken ze niet uit mijn hoofd, dus daar moet je even op Googlen. Het gaat om het vierde argument van mail
Ligt aan het meesturen van de juiste mailheaders:

<?php
$header = "From: Sitenaam <[email protected]>\r\n";
$header .= "MIME-Version: 1.0\r\n";
$header .= "Content-type: text/html; charset=iso-8859-1\r\n";
$header .= "X-Priority: 2\r\n"; # 1 voor erg belangrijk
$header .= "X-MSMail-Priority: High\r\n";
$header .= "X-Mailer: PHP/".phpversion();
?>

Als je dit toevoegd, en even de Sitenaam en email aanpast, moet het al een stuk beter gaan!
De bovenstaande code heb ik toegevoegd.....

moet ik echter in deze regel nog wat aanpassen/toevoegen?

mail($pfw_email_to, $pfw_subject, $pfw_message, "From: " . $afzender . "") ;
mail($pfw_email_to, $pfw_subject, $pfw_message, $header);

Dus de code van Robert pas je aan, en plaats je boven deze regel.
komt nog steeds in de ongewenste map... nu met een rode uitroepteken ervoor....

ook de indeling van het bericht is veranderd. Alle tekst komt nu achter elkaar ipv wat ik eerst had....

Allicht omdat de mail nu als html wordt verzonden.
Of je moet je mail aanpassen naar html (alle \n'tjes omzetten naar <br />, of nl2br() over het bericht halen, en wat andere html toevoegen) of de headers aanpassen naar plain text. (2de en 3de regel van de header weghalen)
Komt omdat het nu een HTML email is. haal de header met Content-Type weg, en het zou al beter moeten gaan. Priority zorgt voor het uitroepteken, kan eventueel weg, of maak er een 3 van. (Of was het nou juist een 1 :S)
Maar dan nog ligt het meestal aan de ontvanger (ik gok op hotmail/live)...
owkeej .. de indeling heb ik weer goed! Alleen komt de mail nog wel in de ongewenste map....
Heb je er een From en een Reply-to in staan?

Reageren