Hallo,

ik ben niet zo heel erg ervaren met php, maar heb een contactformuliertje op mijn site gezet. Nu werkte deze goed, maar sinds vanacht is de server verhuisd en wordt er gebruikt gemaakt van php5 (tenminste, dat wordt mij verteld) en aangezien dat formulier gemaakt is in php4 (ook dat werd mij verteld...) schijnt het daarom niet te werken.

De mails worden wel verzonden, maar in het mailtje, zie ik de html opmaakcodes, terwijl de mail eerst wel goed werd weergegeven?!?

Iemand enig idee wat ik hier aan kan doen?


<link href="style.css" type="text/css" rel=StyleSheet>
</head>
<p class="titel">Contact</p>
<form id="form1" name="form1" method="post" action="" class="formulier">
Naam:<br />
<input type="text" name="naam" />
<br />
E-Mail adres:<br />
<input type="text" name="email" />
<br />
Onderwerp:<br />
<input type="text" name="onderwerp" />
<br />
Bericht:<br />
<textarea name="bericht" cols="45" rows="8"></textarea>
<br />
<label>
<input name="submit" type="submit" id="submit" value="Verzenden" />
</label>
<label>
<input type="reset" name="reset" value="Wissen" />
</label>
</form>
<?php
if(isset($_POST['submit'])){

if(strlen($_POST['naam']) <2 || is_numeric($_POST['naam'])){
$error = "Uw naam is niet of niet correct ingevuld.<br>";
} if(ereg ('(^[0-9a-zA-Z_\.-]{1,}@([0-9a-zA-Z_\-]{1,}\.)+[0-9a-zA-Z_\-]{2,}$)', $_POST['email']) == false){
$error .= "Uw e-mail adres is niet of niet correct ingevuld.<br>";
}if(strlen($_POST['onderwerp']) < 2){
$error .= "Het onderwerp is nog niet ingevuld.<br>";
}if(strlen($_POST['bericht']) < 3){
$error .= "U heeft nog geen bericht geplaatst.<br>";
}

if(isset($error)){
echo "U dient alle velden in te vullen:<br>";
echo "".$error."";
}else{
$naam_ontvanger = "xxx";
$email_ontvanger = "[email protected]";

$naam_verzender = $_POST['naam'];
$email_verzender = $_POST['email'];

$onderwerp = "".$_POST['onderwerp']."";

$headers = "From: ".$naam_verzender." <".$email_verzender.">\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
$headers .= "Return-Path: Mail-Error <[email protected]>\r\n";
$headers .= "Reply-To: ".$naam_verzender." <".$email_verzender.">\r\n";
$headers .= "Bcc: ".$email_verzender."\r\n";

$mail = "<center>-------------- <b><i>Dit bericht is verstuurd via www.xxx.nl</b></i>; --------------</center><br><br>".$_POST['bericht']."

";

$bericht = nl2br($mail);
mail($email_ontvanger, $onderwerp, $bericht, $headers);
echo "Uw bericht is verzonden. <br><br>U ontvangt binnen enkele ogenblikken een e-mail ter bevestiging, indien u deze niet ontvangen heeft, stuur dan een e-mail naar [email protected]<br><br><br>";
}
}
?>
<br />
</body>
</html>
lijkt mij dat het niet echt met het script te maken heeft, je zet namelijk netjes :
Content-type: text/html; charset=iso-8859-1

Bekijk je de mail in de zelfde e-mail client als toen hij er wel goed uitzag?

Kan namelijk zijn dat je e-mail client geen html ondersteunt of dat je het aan moet zetten
ik bekijk 'm nog steeds met microsoft outlook. dus daar kan het ook niet aan liggen volgens mij...

Ik krijg de onderstaande tekst te zien als ik een mail ontvang...:



Content-type: text/html; charset=iso-8859-1
Reply-To: Bas <[email protected]>


<center>-------------- <b><i>Dit bericht is verstuurd via www.xxx.nl</b></i>; --------------</center><br><br>Hallo, werkt dit nog allemaal wel? volgens mij niet...<br />
<br />



De mail wordt dus niet herkend als tekst met opmaak (dat staat ook bovenin het scherm als ik het bericht open (bericht (zonder opmaak))
Inmiddels heb ik diverse testen gedaan met andere mailprogramma's. Nu blijkt dat de mails bij Squirrelmail en Horde wel goed worden weergegeven. Echter bij Microsoft Outlook 2003 en 2007 krijg ik weer de html-codes te zien, terwijl bij Microsoft Outlook 97 de berichten wél goed worden weergegeven.

Nu snap ik er werkelijk niets meer van...

Iemand nog een idee?
Ik weet het niet zeker, maar ik dacht dat het zo wat, dat je in je HTML mail, helemaal met <html> enzo moest werken..
Dus misschien kan je het zo proberen:
<?php
$mail = "<html>
<head>
<title>Onderwerp</title>
</head>
<body>
<center>-------------- <b><i>Dit bericht is verstuurd via www.xxx.nl</b></i>; --------------</center>
<br><br>".$_POST['bericht']."
</body>
</html>";
?>
Micha, dit is niet vereist. Je hoeft niet per se te beginnen met html etc etc. Het moet dan aan de mail client liggen...
jammer, dat werkt helaas ook niet. m'n mailtje dat ik begint ook al met "Content-type: text/html; charset=iso-8859-1 "

Dus het gaat daar al fout, en niet pas bij het opmaken van het bericht.

Maar waarom werkt ie dan wel bij m'n webmail en outlook 97, en bij de anderen niet?

Ook werkte het nog allemaal voordat de server verhuisde...

Kan het zijn dat ik daar iets anders moet instellen?

Reageren