Beste mensen,

Ik heb een php script draaien.... hier staan wat invoervelden e.d. in. Deze worden verstuurd naar een aantal mailadressen. Echter, bij verschillende providers komt de informatie niet.

Bij mijn webhosting provider nagevraagd en die meld dat alles goed wordt afgehandeld. Het gaat dus mis bij afleveren op verschillende mailservers. Wat moet ik nu doen...? Ik kan niet alle mailserver providers bij langs om te vragen wat er fout gaat. Is mijn PHP script SPAM gevoelig...?



<?php
// Receiving variables
# $full_name = addslashes($_POST['full_name']);
# $email = addslashes($_POST['email']);
# $phone = addslashes($_POST['phone']);
# $select = addslashes($_POST['select']);
# $contact_by_email = addslashes($_POST['contact_by_email']);
# $contact_by_phone = addslashes($_POST['contact_by_phone']);
# $question = addslashes($_POST['question']);

$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 = "wim@mijn domein.nl";


$pfw_subject = "Aanmelden Beachvolleybal";
$pfw_email_to = "wim@mijn domein.nl";
$pfw_email_cc = "toernooi@toernooi domein.nl";
$pfw_message = "Aanmelden beachvolleybaltoernooi.\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"
. "Opmerkingen: $question\n"
. "\n"
. "\n"
. "competitie (heren/dames) 2 tegen 2 inschrijfgeld: € 25,- \n"
. "recreanten (>16 jaar) 4 tegen 4 inschrijfgeld: € 30,- \n"
. "jeugd (t/m 15 jaar) 4 tegen 4 inschrijfgeld: € 15,- \n";

$header = "From: Beachvolleybal <toernooi@toernooi domein.nl>\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();

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

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


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

?>
kun je iets duidelijker zijn? Word je mail sowieso niet afgeleverd ? Of worden delen geblokkeerd ?

Het kan uiteraard zo zijn dat het als spam gemarkeerd word. danwel dat de server vanaf waar je verstuurd op een blacklist staat.

Overbodig kopieëren van variabelen.
$full_name = ($_POST['full_name']);
Je kan gewoon gebruik maken van $_POST[...]

Variabelen buiten quotes halen, dus niet:
. "Naam: $full_name\n"
Maar wel:
. "Naam: " . $full_name . "\n"

Heb je een foutmelding en/of zoals sebas zegt wat gaat er mis
Bij een aantal providers wordt de mail wel afgeleverd, bijv. hotmail.com gaat goed. Maar bij mailservers die bij KPN / Solcon staan komt er geen mail door. Ik krijg dus geen foutmelding... gewoon helemaal geen mail.

@sebas; Ik heb de wijzigingen doorgevoerd in mijn script.

@wim
Kdenk dat jouw mail blijft hangen in spamfilters van providers. Dus..
Je moet je headers aanpassen.

mvg Koen
Heeft hier mee te maken ;).
$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();

edit:
haha, koen was me net voor x']
Ik heb het nog niet voor elkaar... mijn script wordt door diverse mailserver niet doorgelaten.

Mijn laatste aanpassing die ik gedaan heb:


$header = "From: Beachvolleybal <[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();

Kan iemand mij nog van wat tips voorzien... of een gerichte website geven? Bij googlen raak ik een een groot bos verdwaald...:-)
Ik raad je aan PHPmailer of Swiftmailer te gebruiken hierbij heb je dit soort gezeik niet. En ik heb nog nooit meegemaakt dat mail niet aan komt.
Het idee is juist dat je meer headers toevoegd, niet verwijderd...

<?php
$headers .= 'From: '.$_POST['naam'].' <'.$_POST['email'].'>'.PHP_EOL;
$headers .= 'To: '.$naam.' <'.$email.'>'.PHP_EOL;
$headers .= 'Reply-To: '.$_POST['naam'].' <'.$_POST['email'].'>'.PHP_EOL;
$headers .= 'X-Mailer: PHP v'.phpversion().PHP_EOL;
$headers .= 'X-Originating-IP: '.$_SERVER['REMOTE_ADDR'].PHP_EOL;
$headers .= 'MIME-Version: 1.0'.PHP_EOL;
$headers .= 'Content-Type: text/plain; charset=UTF-8'.PHP_EOL;
?>

(Alleen wel even aanpassen voor je eigen situatie).

Nog mooier is als je zowel een plain als een html mailtje in-een verstuurd, want als je alleen een html-mailtje verstuurd krijg je vaak extra bonuspunten van de spam-scanners.
bovenstaande $headers toegevoegd...maar er komt nog steeds geen mail aan bij aantal mailservers.

een heel ander script bouwen zie ik echter niet zitten, daarom hoop ik toch dit script aan de praat te krijgen. Voorgaande jaren werkte dit prima...

Hoe kan ik dat "html gedeelte" uitschakelen?

Copy-past zal inderdaad niet werken omdat mijn variabelen anders zijn en ik een mail stuur naar mijzelf van een $_POST['naam'] ipv andersom.

Reageren