Hallo,

Ik heb een mail script gemaakt en nu vroeg ik me af of het veilig is dat je geen spam krijgt.

<?php session_start();
if(!empty($_POST["send"])){

if(eregi("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-z]{2,4}$",$_POST["email"]) && !empty($_POST["naam"]) && !empty($_POST["email"]) && !empty($_POST["onderwerp"]) && !empty($_POST["bericht"]) && $_POST["spam"] == $_SESSION["ant"]){

$naam = $_POST["naam"];
$email = $_POST["email"];
$onderwerp = $_POST["onderwerp"];
$bericht = $_POST["bericht"];
$ip = $_SERVER['REMOTE_ADDR'];

$bericht = wordwrap ($bericht, 40, "\n", 1);
// Headers
$headers = "From: ".$email.">\n";
$headers .= "MIME-Version: 1.0\n";
$headers .= "Content-type: text/plain; charset='iso-8859-1'\n";

// Bericht
$message = "Naam: ".$naam." \n";
$message .= "E-mail: ".$email." \n";
$message .= "Datum: ".date("d-m-Y H:i")." \n";
$message .= "------------------------------------------------------- \n";
$message .= $bericht."\n";
$message .= "------------------------------------------------------- \n";
$message .= "IP: ".$ip." \n ";

mail("[email protected]", $onderwerp, $message, $headers);

echo("<p>De mail is succesvol verzonden, ik doe mijn uiterste best hem zo snel mogelijk te behandelen!</p>");

session_destroy();
}
else{
$a = rand(6,10);
$b = rand(1,5);

$_SESSION["ant"] = $a - $b;

echo('
<p>Vul alle velden correct in!<br />

<form action="contact.php" method="POST">
<table>
<tr>
<td>Naam</td>
<td><input type="text" name="naam" size="30" value="'.$naam.'" maxlength="30"></td>
</tr>
<tr>
<td>Email</td>
<td><input type="text" name="email" size="30" value="'.$email.'" maxlength="30"></td>
</tr>
<tr>
<td>Onderwerp</td>
<td><input type="text" name="onderwerp" size="30" value="'.$onderwerp.'" maxlength="30"></td>
</tr>
<tr>
<td>Bericht</td>
<td><textarea name="bericht" cols="40" rows="10">'.$bericht.'</textarea></td>
</tr>
<tr>
<td>'.$a.' - '.$b.' =</td>
<td><input type="text" name="spam" size="30" maxlength="1"></td>
</tr>
<tr>
<td></td>
<td><input type="submit" name="send" value="Verstuur"></td>
</tr>
</table>
</form></p>');
}
}
else {
$a = rand(6,10);
$b = rand(1,5);

$_SESSION["ant"] = $a - $b;

echo ('
<p><form action="contact.php" method="POST">
<table>
<tr>
<td>Naam</td>
<td><input type="text" name="naam" size="30" maxlength="30"></td>
</tr>
<tr>
<td>Email</td>
<td><input type="text" name="email" size="30" maxlength="30"></td>
</tr>
<tr>
<td>Onderwerp</td>
<td><input type="text" name="onderwerp" size="30" maxlength="30"></td>
</tr>
<tr>
<td>Bericht</td>
<td><textarea name="bericht" cols="40" rows="10"></textarea></td>
</tr>
<tr>
<td>'.$a.' - '.$b.' =</td>
<td><input type="text" name="spam" size="30" maxlength="1"></td>
</tr>
<tr>
<td></td>
<td><input type="submit" name="send" value="Verstuur"></td>
</tr>
</table>
</form></p>
'); } ?>
if(!empty($_POST["send"])){

Daar begint het al, dat zou ik al anders doen.
Nee, dit script is gevoelig voor email-injection.
ICM dit zou het leuk zijn.. Dan kun je zo een paar duizend mailtjes versturen..

Reageren