Hallo Gemeinde,
ich habe bei netcup ein paar Domains.
In einem habe ich ein Kontaktformular, welches mit PHPMailer die Nachricht an vorgegebene Adressen versenden soll und dies auch tut.
Nun habe ich in den letzten Wochen das Problem, das ich immer wieder Mail bekomme, OHNE Inhalt (Name, Mailadresse, Text)
Im Formular sind diese Felder alle als "required" markiert. Ich gehe davon aus, das dies durch einen BOT verursacht wird.
Ich habe euch mal meine PHPMailer.php hier angehängt, evtl. hat ja jemand einen Tipp für mich, wie ich dies abstellen kann.
Vielen Dank für eure Unterstützung
Lieben Gruß Christopher
PHP
<?php
session_start();
if ($_POST['captcha_code'] == $_SESSION['captcha_spam'])
{
$debug = false; // or true;
$spamcheck = false;
require_once "../vendor/autoload.php";
$name = $_REQUEST['besucher_name'];
$AbsenderMail = strtolower($_REQUEST['besucher_email']);
$message = $_REQUEST['besucher_message'];
$message = nl2br($message);
$messageCache = $message;
$url_ok = "https://www.domain.de/kontaktformular_ok.htm";
$url_fehler = "https://www.domain.de/kontaktformular_fehlerhaft.htm";
function checkemail($str)
{
if ( preg_match("#(to:|cc:|bcc:|from:|subject:|reply-to:|content-type:|MIME-Version:|multipart/mixed|Content-Transfer-Encoding:)#ims", $str)
||
preg_match("/%0A|\\r|%0D|\\n|%00|\\0|%09|\\t|%01|%02|%03|%04|%05|%06|%07|%08|%09|%0B|%0C|%0E|%0F|%10|%11|%12|%13/i", $str)
||
strlen($str)<6)
{ $spamcheck = false;
}
else {
$spamcheck = true;
}
}
try {
$mail = new PHPMailer\PHPMailer\PHPMailer($debug);
if ($debug) {
$mail->SMTPDebug = PHPMailer\PHPMailer\SMTP::DEBUG_SERVER;
}
$mail->isSMTP();
$mail->SMTPAuth = true;
$mail->Host = "mxeXXX.netcup.net";
$mail->Port = "587";
$mail->Username = "norerply@domain.de";
$mail->Password = "pa55word";
$mail->SMTPSecure = PHPMailer\PHPMailer\PHPMailer::ENCRYPTION_STARTTLS;
$mail->SMTPOptions = array(
'ssl' => array(
'verify_peer' => false,
'verify_peer_name' => false,
'allow_self_signed' => true
),
'tls' => array(
'verify_peer' => false,
'verify_peer_name' => false,
'allow_self_signed' => true
)
);
checkemail($AbsenderMail);
if ($spamcheck = true) {
$AbsenderName = $name;
$AbsenderMailundName = $AbsenderName.' "'.$AbsenderMail.'"';
$mail->isHTML(true);
$message = "
<html>
<body>
<p>Eine neue Anfrage von ".$AbsenderName." ist eingegangen.<br>
Die hinterlegte E-Mail-Adresse lautet: " . $AbsenderMail . ".<br>
<p><strong>Nachricht:</strong> <hr> " . $message . "<hr></p>
</body>
</html>
";
$mail->Subject = 'Kontaktformular, Nachricht von '.$AbsenderMailundName;
$mail->Body = $message;
$mail->AltBody = $message;
$mail->setFrom('norerply@domain.de','Kontaktformular domain');
$mail->addAddress('info@domain.de', 'Info domain');
$mail->addBCC('hostmaster@domain.de', 'Info domain');
$mail->addReplyTo($AbsenderMail, $name);
$mail->CharSet = 'UTF-8';
$result = $mail->send();
}
if(!$result) {
header("Location: ".$url_fehler);
} else {
header("Location: ".$url_ok);
}
} catch (PHPMailer\PHPMailer\Exception $e)
{
echo "Message could not be sent. Mailer Error: ".$mail->ErrorInfo;
}
} else {
echo 'Du hast den Captcha-Code falsch eingegeben!';
}
?>
Alles anzeigen