Website Contact Form nur von bestimmten E-Mail adressen?

...komplette Frage anzeigen

3 Antworten

$email = "emailadresse@web.de";

if(strpos(strtolower($email), "@web.de") || strpos(strtolower($email), "@gmx.de"))
{
 //okay, weiter gehts
}

das wäre eine mögliche php lösung. du solltest natürlich $email durch die richtige variable ersetzen

0

Setzt die Seite auf PHP auf? Wenn ja, hast du den PHP-Code selbst geschrieben bzw. kannst du PHP?

Wenn ja, dann schau dir mal RegEx an. Damit kannst du ein Muster erstellen, nach dem verglichen wird. Oder noch einfacher: Du suchst mit strpos nach dem @-Zeichen, erstellst ab dieser Stelle (exklusive des @) einen Substring und prüfst, ob er mit den von dir akzeptierten Domains übereinstimmt, die du z.B. in ein Array schreiben kannst.

Ne habe nur ein funktionierendes Template. Kenne mich mit PHP nicht aus.

0
@UnRunDeath

Das ist meine PHP

<?php


// configure
$from = 'Website Auftrag <>';
$sendTo = 'Website Auftrag Empfänger <>'; // Add Your Email
$subject = 'Neuer Website Auftrag';
$fields = array( // array variable name => Text to appear in the email
'name' => 'Name',
);
$okMessage = 'Kommission erfolgreich abgesendet. Du bekommst in kürze eine Antwort von Mir!';
$errorMessage = 'Es ist ein Fehler aufgetreten. Bitte Versuche es in 5 Minuten erneut';

// let's do the sending

try
{
$emailText = "Neuer Website Auftrag von\n=============================\n";

foreach ($_POST as $key => $value) {

if (isset($fields[$key])) {
$emailText .= "$fields[$key]: $value\n";
}
}

$headers = array('Content-Type: text/plain; charset="UTF-8";',
'From: ' . $from,
'Reply-To: ' . $from,
'Return-Path: ' . $from,
);

mail($sendTo, $subject, $emailText, implode("\n", $headers));

$responseArray = array('type' => 'success', 'message' => $okMessage);
}
catch (\Exception $e)
{
$responseArray = array('type' => 'danger', 'message' => $errorMessage);
}

if (!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
$encoded = json_encode($responseArray);

header('Content-Type: application/json');

echo $encoded;
}
else {
echo $responseArray['message'];
}
0

Kannst du bitte noch das HTML des Formulars posten?

0

Dazu müsstest du serverseitig prüfen, ob die eingegebene E-Mail-Adresse eine der erlaubten Endungen hat. Vereinfacht könnte das in etwa so aussehen (Ich nehme mal an du verwendest PHP):

<?php

$email = !empty($_POST["email"]) ? $_POST["email"] : "";

$whitelist = array("@gmx.de", "@web.de");

$emailIsValid = false;
for ($i = 0; $i < count($whitelist); $i++) {
if (strpos($email, $whitelist[$i]) > 0) {
$emailIsValid = true;
break;
}
}

if ($emailIsValid) {
// email absenden
} else {
// fehlermeldung ausgeben
}

?>

Also mein PHP Sieht derzeit noch so aus. 

<?php


// configure
$from = 'Website Auftrag <>';
$sendTo = 'Website Auftrag Empfänger <>'; // Add Your Email
$subject = 'Neuer Website Auftrag';
$fields = array( // array variable name => Text to appear in the email
'name' => 'Name',
);
$okMessage = 'Kommission erfolgreich abgesendet. Du bekommst in kürze eine Antwort von Mir!';
$errorMessage = 'Es ist ein Fehler aufgetreten. Bitte Versuche es in 5 Minuten erneut';

// let's do the sending

try
{
$emailText = "Neuer Website Auftrag von\n=============================\n";

foreach ($_POST as $key => $value) {

if (isset($fields[$key])) {
$emailText .= "$fields[$key]: $value\n";
}
}

$headers = array('Content-Type: text/plain; charset="UTF-8";',
'From: ' . $from,
'Reply-To: ' . $from,
'Return-Path: ' . $from,
);

mail($sendTo, $subject, $emailText, implode("\n", $headers));

$responseArray = array('type' => 'success', 'message' => $okMessage);
}
catch (\Exception $e)
{
$responseArray = array('type' => 'danger', 'message' => $errorMessage);
}

if (!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
$encoded = json_encode($responseArray);

header('Content-Type: application/json');

echo $encoded;
}
else {
echo $responseArray['message'];
}
0
@UnRunDeath

Das ist total überflüssig, diese E-mails auszuschließen. Jede Email, die über das Kontaktformular gesendet wird, geht zuerst an eine geheime Email Adresse , die du noch einrichten musst. Mit Spam wirst du deshalb, gar keine Probleme haben.

0

Was möchtest Du wissen?