Ich habe diese sehr einfache Funktion...
function send_mail($to, $from, $from_mail, $subject, $message) {
if ( empty($from) || empty($from_mail) || empty($subject) || empty($message) ) {
return -1;
}
if ( isset ($_SESSION['last_mailed']) )
{
if ( $_SESSION['last_mailed'] + 180 < time() )
return -2;
}
$_SESSION['last_mailed'] = time();
if ( !validEmail($from_mail) )
return -3;
$from = strip_mail_headers_single($from);
$from_mail = strip_mail_headers_single($from_mail);
$subject = strip_mail_headers_single($subject);
$message = strip_mail_headers_multi($message);
return mail($to, $subject, $message, "From: $from <$from_mail>\r\n");
}
if ( !empty($_POST) ) {
$result = send_mail($mail_to, $_POST['from'], $_POST['from_mail'], $_POST['subject'], $_POST['message']);
if ( $result == -1 )
{
echo "<p>You need to complete all the fields.</p>";
}
elseif ( $result == -2 )
{
echo "<p>You can only send one mail every three minutes.</p>";
}
elseif ( $result == -3 )
{
echo "<p>Please enter a valid email address.</p>";
}
else
{
echo "<p>Mail sent successfully!</p>";
}
}
Ich erhalte einige seltsame Ergebnisse. Die mail()
zurückkehrt, wird das Ergebnis auf 1 gesetzt, und die E-Mail wird gesendet. Allerdings, " if ( $result == -1 )
" aus irgendeinem Grund den Wert "true" und die entsprechende Fehlermeldung wird ausgedruckt. Woran liegt das? Hat jemand eine Idee?