wat lukt er niet aan, en waar loop je precies vast op, en wat heb je geprobeerd?
Link gekopieerd
M
Massimo W
12-10-2010 20:03
gewijzigd op 12-10-2010 20:03
<?php
$to = "
[email protected] ";
$subject = "onderwerp van voorbeeld berichtje";
$variabel_naampje = "Janus";
$html_bericht = "...html... <td>Naam:</td><td>".$variabel_naampje."</td>...html...";
mail($to, $subject, $html_bericht);
?>
Zoiets? eventueel headers toevoegen om niet als spam gemarkeerd te worden.
Link gekopieerd
W
Wouter OOP
13-10-2010 08:32
gewijzigd op 13-10-2010 09:47
Bedankt voor jullie reacties. Ik heb het toegepast, maar dit werkt nog niet. Ik krijg gewoon plain tekst te zien: (zie regel 51)
<link rel="stylesheet" href="../opmaak.css" type="text/css">
<?php
if($_SERVER['REQUEST_METHOD'] == 'POST'){
$mail_naar = $_POST['email'];
$mail_onderwerp = 'test';
$mail_headers = 'MIME-Version: 1.0' . "\r\n";
$mail_headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$mail_headers = 'From:'.$_POST['naam'].'<'.$_POST['email'].'>';
// Checkt of alle velden juist zijn ingevuld.
$error= array();
if(!ctype_print($_POST['naam']) || !preg_match('~^[a-zA-Z][a-zA-Z.\- ]{2,}$~D', $_POST['naam'])){
$error['naam'] = 'U heeft geen geldige naam ingevuld.';
}
if(!ctype_print($_POST['email']) || !preg_match('~^[a-z0-9][a-z0-9_.\-]*@([a-z0-9]+\.)*[a-z0-9][a-z0-9\-]+\.([a-z]{2,6})$~iD', $_POST['email'])){
$error['email'] = 'U heeft geen geldig emailadres ingevuld.';
}
// Checkt of de waarde in de array groter is dan '0'.
if(count($error)>0){
echo '<u>Om de volgende reden kan uw vraag helaas niet worden verwerkt:</u>';
echo '<ul>';
foreach($error as $msg){
echo '<li>'. $msg .'</li>';
}
echo '</ul>';
echo 'Klik op <a href="javascript:history.back(1)">terug</a> en vul alle velden in.';
}
else{
require("../connect_db.php");
$Object = 'test';
$Datum = date('d-m-Y');
$DatumTijd = strtotime($Datum);
$DatumFormat = date('Y-m-d',$DatumTijd);
$Query = "SELECT *, CONVERT(char(14), DatumControle,105) as DatumControle2 FROM Bewakingsdiensten WHERE ControleObject = '$Object' AND DatumControle > cast('$DatumFormat' as datetime) - 1 AND DatumControle < cast('$DatumFormat' as datetime) + 1 ORDER BY DatumControle desc";
$results = mssql_query($Query);
$rij = mssql_fetch_assoc( $results );
if(mssql_num_rows($results) > 0){
$resultaten_bewakingsdiensten = "<html><table><td>ControleObject:</td><td>".$rij['ControleObject']."</td></table></html>";
}
// Hier staat alles in wat per mail verzonden moet worden.
$mail_content = "Naam: ".$_POST['naam']."\nEmail: ".$_POST['email']."\n\n\nResultaten:\n\n".$resultaten_bewakingsdiensten;
if(mail($mail_naar,$mail_onderwerp,$mail_content,$mail_headers)){
echo 'De resultaten zijn succesvol verzonden naar '.$_POST['email'].'.';
echo '<a href="mail_resultaten.php">Keer terug</a>';
}
else{
echo 'De resultaten zijn niet verzonden, contacteer de beheerder.';
}
}
}
else{
?>
<form action="<?php echo htmlspecialchars($_SERVER['PHP_SELF'], ENT_QUOTES); ?>" method="post">
<fieldset>
<legend>Met dit formulier kunt u de resultaten emailen.<br>
<br>
</legend>
<table width="288">
<tr>
<td width="128">Uw naam</td>
<td width="144"><input id="naam" type="text" name="naam"></td>
</tr>
<tr>
<td>Uw e-mailadres</td>
<td><input id="email" type="text" name="email"></td>
</tr>
<tr>
<td> </td>
<td><input type="submit" name="submit" class="submit" value="Resultaten verzenden"></td>
</tr>
</table>
</fieldset>
</form>
<?php
}
?>
Link gekopieerd
Link gekopieerd
W
Wouter OOP
13-10-2010 09:03
gewijzigd op 13-10-2010 09:03
SanThe Nvt op 13/10/2010 08:40:38
Je mailtje is ook helemaal niet html valid.
Denk ook aan email-injection.
http://phpwiki.santhe.nl/index.php/De_juiste_mailheaders
Ik dank u :)
<?php
$mail_headers = 'From:'.$_POST['naam'].'<'.$_POST['email'].'>';
$mail_headers.= 'MIME-Version: 1.0'. PHP_EOL ;
$mail_headers.= 'Content-type: text/html; charset=iso-8859-1'. PHP_EOL ;
?>
Link gekopieerd
De inhoud van From is niet correct. Zie de link.
Link gekopieerd
SanThe Nvt op 13/10/2010 09:11:43
De inhoud van From is niet correct. Zie de link.
$mail_headers = 'From:'.$_POST['naam'].'<'.$_POST['email'].'>'.PHP_EOL;
Zo?
Link gekopieerd
Nee, bij de From hoort je eigen emailadres. Die van de bezoeker kan eventueel in de Reply-to.
Link gekopieerd
Link gekopieerd
SanThe Nvt op 13/10/2010 08:40:38
Je mailtje is ook helemaal niet html valid.
Let wel op dat je heel beperkt bent in de html van een e-mail/nieuwsbrief
Zo moet het uit tabellen bestaan en niet uit divs (want float word niet ondersteund in de meeste e-mail programma's etc) paddings,margins,backgrounds etc worden ook heel slecht ondersteund vooral door outlook 2007
Link gekopieerd