hallo ich benötige mal wieder hilfe. ich hab ein email form mal nach meinen wünschen angepasst und alles klappte auch auf mehreren server. nun bin ich aber umgezogen (nach goneo) und ohne fehlermeldung kommt keine email mehr vom form an. ich hab darauf mal beim suport rum geguckt und auch was gefunden. aber meine kenntnisse reichen bei weitem nicht aus das ich das script anpassen kann. kann mir da bitte jemand helfen? dazu kommt das ich gerne das script sehr einfach in anderen homepages einbauen möchte, wäre schön wenn das klappen könnte. so wie es jetzt war musste man ja nur die empfänger adresse anpassen und fertig. wenn ich das richtig verstehe will goneo nur nicht das man eine email ohne absender adresse verschickt (zur spam vorbeuge). also wenn man das irgendwie einbauen könnte war es das vielleicht schon?
vielen dank euch
der code von meinem email form:
<?php
$formularAnzeigen = false;
if (!empty($_POST['senden']) && (
empty($_POST['Name']) ||
empty($_POST['eMail']) ||
empty($_POST['betreff2']) ||
empty($_POST['nachricht']))) {
$formularAnzeigen = true;
echo '<span style="color: #FF0000; font-size: x-large;">Bitte alle Felder ausfüllen.</span>';
} else if (!empty($_POST['senden']) &&
!isEmail($_POST['eMail'])) {
$formularAnzeigen = true;
echo '<span style="color: #FF0000; font-size: x-large;">Die E-Mail-Adresse ist nicht korrekt.</span>';
} else if (empty($_POST['senden'])) {
$formularAnzeigen = true;
}
if ($formularAnzeigen) {
?>
<div style="padding-left:0">
<form name="kontaktFormular" method="post" action="<?=$_SERVER[PHP_SELF]; ?>" onSubmit="return isValid()">
<!--anfang Anrede-->
<input type="radio" name="anrede" value="Herr"checked>Herr <input type="radio" name="anrede" value="Frau">Frau<br><br>
<!--ende anrede-->
<!--anfang vorName-->
<strong>Name:</strong><br><input name="Name" type="text" value="<?=$_POST['Name']; ?>" /><br><br>
<!--ende vorName-->
<!--anfang eMail-->
<strong>E-Mail:</strong><br><input name="eMail" type="text" id="eMail" value="<?=$_POST['eMail']; ?>" /><br><br>
<!--ende eMail-->
<!--anfang betreff2-->
<strong>Betreff:</strong><br><select name="betreff2" id="betreff2">
<option<?=($_POST['betreff2']=='Allgemein')?' selected':' '?>>Allgemein</option>
<option<?=($_POST['betreff2']=='Webmaster')?' selected':' '?>>Webmaster</option></select><br><br>
<!--ende betreff2-->
<!--anfang nachricht-->
<strong>Nachricht:</strong><br><textarea name="nachricht" cols="40" rows="10"><?=$_POST['nachricht']; ?></textarea><br><br>
<!--ende nachricht-->
<!--anfang kopie-->
<strong>Kopie der Nachricht:</strong><input name="kopie" type="checkbox" value="checked" <?=$_POST['kopie']; ?>>
<!--ende kopie-->
<!--anfang Captcha -->
<!--kein Captcha -->
<!--ende Captcha -->
<br><br><input name="senden" type="submit" value="Senden" />
</form></div>
<?php
echo'';
} else {
$eMail = '
Anrede:
'.$_POST['anrede'].'
Name:
'.$_POST['Name'].'
E-Mail:
'.$_POST['eMail'].'
Betreff:
'.$_POST['betreff2'].'
Nachricht:
'.$_POST['nachricht'].'
Kopie der Nachricht:
'.$_POST['kopie'].'
'.$_POST['captcha'].'';
if (@mail("info@meine_email.de",
"Neue Nachricht vom Kontaktformular",
$eMail)) {
echo "Ihre Nachricht wurde an uns verschickt, vielen Dank!<br /><br />";
} else {
echo "E-Mail-Verkehr funktioniert zur Zeit nicht<br />";
}
if ($_POST['kopie']) {
if (@mail($_POST['eMail'],
"AW: Kopie Ihrer Nachricht",
$eMail)) {
echo "Sie haben eine Kopie der Nachricht zugeschickt bekommen.<br /><br />";
}
}
}
function isEmail($email) {
$nonascii = "\x80-\xff";
$nqtext = "[^\\$nonascii\015\012\']";
$qchar = "\\[^$nonascii]";
$protocol = "(?:mailto:)";
$normuser = "[a-zA-Z0-9][a-zA-Z0-9_.-]*";
$quotedstring = "\"(?:$nqtext|$qchar)+\"";
$user_part = "(?:$normuser|$quotedstring)";
$dom_mainpart = "[a-zA-Z0-9][a-zA-Z0-9._-]*\.";
$dom_subpart = "(?:[a-zA-Z0-9][a-zA-Z0-9._-]*\.)*";
$dom_tldpart = "[a-zA-Z]{2,5}";
$domain_part = "$dom_subpart$dom_mainpart$dom_tldpart";
$regex = "$protocol?$user_part\@$domain_part";
if (preg_match("/^$regex$/",$email)) {
return true;
}
return false;
}
?>
Alles anzeigen
Und das Schreibt mein Provider:
E-Mails, welche über den goneo Webserver versendet werden (z.B. durch Gästebücher, Kontaktformulare oder andere dynamische Anwendungen), können bei goneo nur über eine Absender E-Mail Adresse oder einen Alias versendet werden, welchen Sie bei goneo auch eingerichtet haben. Wenn Sie z.B. in Ihrem Script oder Ihrer Anwendung als Absender "mail@ihre-domain-bei-goneo.de" angegeben haben, dann muss diese E-Mail Adresse oder Alias bei goneo in Ihrem Kundencenter auch angelegt sein. Ansonsten wird die Mail von unserem Mailsystem abgelehnt und kann nicht zugestellt werden.
Eigene Scripte müssen entsprechend angepasst werden, da sonst kein Mailversand möglich ist.
Anbei ein Beispiel für ein Mailscript mit PHP, an dem Sie sich orientieren können:
<?php
/* Empfänger */
$empfaenger = 'paul-mueller@paul-muellers-homepage.de';
/* Absender */
$absender = 'absender@ihre-domain-bei-goneo.de';
/* Betreff */
$subject = 'Testmail mit PHP';
/* Nachricht */
$message = 'Hallo Welt!';
/* Baut Header der Mail zusammen */
$header = ("From: " . $absender . "\n");
$header .= ("Reply-To: " . $absender . "\n");
$header .= ("Return-Path: " . $absender . "\n");
$header .= ("X-Mailer: PHP/" . phpversion() . "\n");
$header .= ("X-Sender-IP: " . $REMOTE_ADDR . "\n");
$header .= ("Content-type: text/html\n");
/* Verschicken der Mail */
mail($empfaenger, $subject, $message, $header, "-f muss-existieren@ihre-domain-bei-goneo.de");
echo "Die E-Mail wurde versendet.";
?>
Alles anzeigen
Alternativ können Sie auch einfach eine eigene php.ini Datei nutzen, und diese wie folgt anpassen:
Vorher: sendmail_path = /usr/local/sbin/sendmail -t -i
Hinterher: sendmail_path = /usr/local/sbin/sendmail -t -i -f mail@ihre-domain-bei-goneo.de
Wobei Sie "mail@ihre-domain-bei-goneo.de" durch eine von Ihren existierenden E-Mail-Adressen oder Aliasen ersetzen müssen. Diese Datei muss dann in jedem Verzeichnis liegen, für das Sie diese Änderung benötigen.