Formulardaten mit php per e-mail verschicken
Hallo erstmal !
Ich habe ein kleines Problem und hoffe ihr könnt mir helfen.
Ich habe eine kleine aber doch recht feine Internetseite programmiert . Auf dieser Seite befindet sich auch ein Formular, nichts weltbewegendes , mit Name , E-Mail und einem Nachrichtenfenster , sodass Leute mit mir schnell und einfach Kontakt aufnehmen können. Ich möchte diese Daten per E-Mail an meine GMX-Adresse weiterreichen lassen .
Wenn ich bei <form action="mailto:..."> angebe öffnet sich outlook. Dass ist mir zu umständlich, deswegen bin ich auf PHP umgestiegen und hab ein bisschen Quelltext dazugeschrieben. Wenn ich die PHP-Seite nun aufrufe und auf senden klicke kam zuerst die Nachricht, dass ich die SMTP Einstellungen in php.ini ändern solle. Als SMTP habe ich dann mail.gmx.net eingetragen .
Wenn ich nun das Formular abschicke , bekomm ich aber weiterhin nicht die Daten übermittelt , sondern werde nur auf eine weisse Seite weitergeleitet.
Der Quellcode ist übrigens :
Muss ich noch irgendetwas an der php.ini ändern ??
Mfg LimAd
Ich habe ein kleines Problem und hoffe ihr könnt mir helfen.
Ich habe eine kleine aber doch recht feine Internetseite programmiert . Auf dieser Seite befindet sich auch ein Formular, nichts weltbewegendes , mit Name , E-Mail und einem Nachrichtenfenster , sodass Leute mit mir schnell und einfach Kontakt aufnehmen können. Ich möchte diese Daten per E-Mail an meine GMX-Adresse weiterreichen lassen .
Wenn ich bei <form action="mailto:..."> angebe öffnet sich outlook. Dass ist mir zu umständlich, deswegen bin ich auf PHP umgestiegen und hab ein bisschen Quelltext dazugeschrieben. Wenn ich die PHP-Seite nun aufrufe und auf senden klicke kam zuerst die Nachricht, dass ich die SMTP Einstellungen in php.ini ändern solle. Als SMTP habe ich dann mail.gmx.net eingetragen .
Wenn ich nun das Formular abschicke , bekomm ich aber weiterhin nicht die Daten übermittelt , sondern werde nur auf eine weisse Seite weitergeleitet.
Der Quellcode ist übrigens :
<?php
### Konfiguration ###
# An welche Adresse sollen die Mails gesendet werden?
$strEmpfaenger = 'beispiel@providerxy.yx'; <-- Hier habe ich bereits meine GMX E-Mail Adresse eingetragen
# Welche Adresse soll als Absender angegeben werden?
# (Manche Hoster lassen diese Angabe vor dem Versenden der Mail ueberschreiben)
$strFrom = '"Formmailer" <Versender@provider.xy>'; <-- Hier habe ich eine andere E-Mail angegeben.
# Welchen Betreff sollen die Mails erhalten?
$strSubject = 'Feedback';
# Zu welcher Seite soll als "Danke-Seite" weitergeleitet werden?
# Wichtig: Sie muessen hier eine gueltige HTTP-Adresse angeben!
# $strReturnhtml = 'http://www.google.de';
# Welche(s) Zeichen soll(en) zwischen dem Feldnamen und dem angegebenen Wert stehen?
$strDelimiter = ":\t";
### Ende Konfiguration ###
if($_POST)
{
$strMailtext = "";
while(list($strName,$value) = each($_POST))
{
if(is_array($value))
{
foreach($value as $value_array)
{
$strMailtext .= $strName.$strDelimiter.$value_array."\n";
}
}
else
{
$strMailtext .= $strName.$strDelimiter.$value."\n";
}
}
if(get_magic_quotes_gpc())
{
$strMailtext = stripslashes($strMailtext);
}
mail($strEmpfaenger, $strSubject, $strMailtext, "From: ".$strFrom)
or die("Die Mail konnte nicht versendet werden.");
# header("Location: $strReturnhtml");
exit;
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de">
<head>
<title>Einfacher PHP-Formmailer</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body>
<form action="<?php print $_SERVER['PHP_SELF']; ?>" method="post">
<!-- Hier die eigentlichen Formularfelder eintragen. Die folgenden sind Beispielangaben. -->
<dl>
<dt>Ihr Name:</dt>
<dd><input type="text" name="Versender" /></dd>
<dt>Ihre E-Mail:</dt>
<dd><input type="text" name="E-Mail" /></dd>
<dt>Bemerkungen:</dt>
<dd><textarea name="Bemerkungen" rows="3" cols="20">Bemerkungen</textarea></dd>
</dl>
<!-- Ende der Beispielangaben -->
<p>
<input type="submit" value="Senden" />
<input type="reset" value="Zurücksetzen" />
</p>
</form>
</body>
</html>
Muss ich noch irgendetwas an der php.ini ändern ??
Mfg LimAd
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Kommentar vom Moderator masterG am 14.04.2010 um 13:25:43 Uhr
Habe mir erlaubt den Code in einen Codeblock zu packen.
Content-ID: 140313
Url: https://administrator.de/forum/formulardaten-mit-php-per-e-mail-verschicken-140313.html
Ausgedruckt am: 23.01.2025 um 15:01 Uhr
7 Kommentare
Neuester Kommentar
Hallo LimAd,
ich denke, der Server wird nichts versenden. In der Regel benutzt mail() die Funktionalität eines Mailversenders (sendmail auf Linuxsystemen). Deshalb steht in der php.ini meist "localhost". Wenn du nun mail.gmx.net einträgst, dann musst du dich dort natürlich authorisieren. gmx.net wird keine anonymen Versender zulassen.
Bevor du nun sendmail installierst, solltest du bedenken, dass vor allem die Freemail-Anbieter nicht eingetragene E-Mail-Versender sperren. (Du kannst also nicht von xyz.de Mails für meineDomain.de versenden, wenn nicht xyz.de als Mailserver eingetragen ist.
Meine richtig aktive PHP-Zeit ist schon was länger her, aber ich meine, es gibt smtp Skripte (hotscripts.com oder ähnliche Sammlungen), welche sich dann bei gmx.net anmelden können, um dir selbst (an die selbe Adresse) eine Mail zu senden. Allerdings musst du dort Kundennummer und Passwort im Skript eintragen.
Noch ein Link zum lesen, den ich grad gefunden habe:
http://email.about.com/od/emailprogrammingtips/qt/PHP_Email_SMTP_Authen ...
Lg
Matze
ich denke, der Server wird nichts versenden. In der Regel benutzt mail() die Funktionalität eines Mailversenders (sendmail auf Linuxsystemen). Deshalb steht in der php.ini meist "localhost". Wenn du nun mail.gmx.net einträgst, dann musst du dich dort natürlich authorisieren. gmx.net wird keine anonymen Versender zulassen.
Bevor du nun sendmail installierst, solltest du bedenken, dass vor allem die Freemail-Anbieter nicht eingetragene E-Mail-Versender sperren. (Du kannst also nicht von xyz.de Mails für meineDomain.de versenden, wenn nicht xyz.de als Mailserver eingetragen ist.
Meine richtig aktive PHP-Zeit ist schon was länger her, aber ich meine, es gibt smtp Skripte (hotscripts.com oder ähnliche Sammlungen), welche sich dann bei gmx.net anmelden können, um dir selbst (an die selbe Adresse) eine Mail zu senden. Allerdings musst du dort Kundennummer und Passwort im Skript eintragen.
Noch ein Link zum lesen, den ich grad gefunden habe:
http://email.about.com/od/emailprogrammingtips/qt/PHP_Email_SMTP_Authen ...
Lg
Matze
Bevor du nun sendmail installierst, solltest du bedenken, dass vor allem die Freemail-Anbieter nicht eingetragene E-Mail-Versender sperren. (Du kannst also nicht von xyz.de Mails für meineDomain.de versenden, wenn nicht xyz.de als Mailserver eingetragen ist.
So funktioniert das Spielchen nicht, denn damit würden sich die Freemail-Anbieter alle selbst kicken, weil sie aufgrund der Masse and Mails andere Hosts für den Versand und den Empfang benutzen und Techniken wie SPF werden kaum umgesetzt.
Hallo dog,
ich habe bei gmx die Erfahrung gemacht (ist schon etwas her), dass es nicht möglich war, von meinem Server Mail zu versenden. Vielleicht geht es heut wieder oder es war ein anderer Fehler, habe diesbezüglich keine 100%igen Informationen, da ich den Host dann einfach eingetragen habe.
<edit>
GMX zumindest hat einen SPF -Eintrag.
gmx.net IN TXT v=spf1 ip4:213.165.64.0/23 ip4:74.208.5.64/26 -all 300s (5m)
</edit>
Lg
Matze
ich habe bei gmx die Erfahrung gemacht (ist schon etwas her), dass es nicht möglich war, von meinem Server Mail zu versenden. Vielleicht geht es heut wieder oder es war ein anderer Fehler, habe diesbezüglich keine 100%igen Informationen, da ich den Host dann einfach eingetragen habe.
<edit>
GMX zumindest hat einen SPF -Eintrag.
gmx.net IN TXT v=spf1 ip4:213.165.64.0/23 ip4:74.208.5.64/26 -all 300s (5m)
</edit>
Lg
Matze
Soso, das erklärt einiges.
Weil du nicht Linux sondern Windows als Server benutzt braucht PHP einen SMTP-Server und "localhost" ist keiner und GMX ist dafür auch nicht geeignet.
Du musst dir z.B. Mercury als Relay installieren, der lokal alle Mails annimt und mit Authentifizierung an einen Smarthost weiterleitet...
Weil du nicht Linux sondern Windows als Server benutzt braucht PHP einen SMTP-Server und "localhost" ist keiner und GMX ist dafür auch nicht geeignet.
Du musst dir z.B. Mercury als Relay installieren, der lokal alle Mails annimt und mit Authentifizierung an einen Smarthost weiterleitet...
Ich würde für sowas die Klasse PHPMailer empfehlen da braucht man in der php.ini nicht so viel herum schreiben.
http://phpmailer.worxware.com/
http://phpmailer.worxware.com/