Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
Kommentar vom Moderator masterG am 14.04.2010 um 13:25:43 Uhr
Habe mir erlaubt den Code in einen Codeblock zu packen.

Formulardaten mit php per e-mail verschicken

Frage Entwicklung PHP

Mitglied: LimAd89

LimAd89 (Level 1) - Jetzt verbinden

11.04.2010, aktualisiert 14.04.2010, 5030 Aufrufe, 7 Kommentare

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 :
01.
<?php 
02.
 
03.
### Konfiguration ### 
04.
 
05.
# An welche Adresse sollen die Mails gesendet werden? 
06.
$strEmpfaenger = 'beispiel@providerxy.yx';  <-- Hier habe ich bereits meine GMX E-Mail Adresse eingetragen 
07.
 
08.
# Welche Adresse soll als Absender angegeben werden? 
09.
# (Manche Hoster lassen diese Angabe vor dem Versenden der Mail ueberschreiben) 
10.
$strFrom       = '"Formmailer" <Versender@provider.xy>'; <-- Hier habe ich eine andere E-Mail angegeben. 
11.
 
12.
# Welchen Betreff sollen die Mails erhalten? 
13.
$strSubject    = 'Feedback'; 
14.
 
15.
# Zu welcher Seite soll als "Danke-Seite" weitergeleitet werden? 
16.
# Wichtig: Sie muessen hier eine gueltige HTTP-Adresse angeben! 
17.
# $strReturnhtml = 'http://www.google.de'; 
18.
 
19.
# Welche(s) Zeichen soll(en) zwischen dem Feldnamen und dem angegebenen Wert stehen? 
20.
$strDelimiter  = ":\t"
21.
 
22.
### Ende Konfiguration ### 
23.
 
24.
if($_POST
25.
26.
 $strMailtext = ""
27.
 
28.
 while(list($strName,$value) = each($_POST)) 
29.
30.
  if(is_array($value)) 
31.
32.
   foreach($value as $value_array
33.
34.
    $strMailtext .= $strName.$strDelimiter.$value_array."\n"
35.
36.
37.
  else 
38.
39.
   $strMailtext .= $strName.$strDelimiter.$value."\n"
40.
41.
42.
 
43.
 if(get_magic_quotes_gpc()) 
44.
45.
  $strMailtext = stripslashes($strMailtext); 
46.
47.
 
48.
 mail($strEmpfaenger, $strSubject, $strMailtext, "From: ".$strFrom
49.
  or die("Die Mail konnte nicht versendet werden."); 
50.
# header("Location: $strReturnhtml"); 
51.
 exit
52.
53.
 
54.
?> 
55.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
56.
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
57.
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de"
58.
    <head> 
59.
        <title>Einfacher PHP-Formmailer</title> 
60.
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 
61.
    </head> 
62.
    <body> 
63.
 
64.
        <form action="<?php print $_SERVER['PHP_SELF']; ?>" method="post"
65.
            <!-- Hier die eigentlichen Formularfelder eintragen. Die folgenden sind Beispielangaben. --> 
66.
            <dl> 
67.
                <dt>Ihr Name:</dt> 
68.
                <dd><input type="text" name="Versender" /></dd> 
69.
                <dt>Ihre E-Mail:</dt> 
70.
                <dd><input type="text" name="E-Mail" /></dd> 
71.
                <dt>Bemerkungen:</dt> 
72.
                <dd><textarea name="Bemerkungen" rows="3" cols="20">Bemerkungen</textarea></dd> 
73.
            </dl> 
74.
            <!-- Ende der Beispielangaben --> 
75.
            <p> 
76.
            <input type="submit" value="Senden" /> 
77.
            <input type="reset" value="Zurücksetzen" /> 
78.
            </p> 
79.
        </form> 
80.
    </body> 
81.
</html>  
82.
 





Muss ich noch irgendetwas an der php.ini ändern ??


Mit freundlichen Grüßen LimAd
Mitglied: dog
11.04.2010 um 17:53 Uhr
Eine weiße Seite nützt uns nichts.
Füge an den Anfang deines PHP-Scripts folgendes ein:
01.
error_reporting(E_ALL|E_STRICT); 
02.
ini_set('display_errors','On');
Und poste dann die Fehlermeldung (und dann zumindest das ini_set wieder auskommentieren).
Bitte warten ..
Mitglied: matze2010
11.04.2010 um 18:43 Uhr
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
Bitte warten ..
Mitglied: dog
11.04.2010 um 18:47 Uhr
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.
Bitte warten ..
Mitglied: matze2010
11.04.2010 um 18:52 Uhr
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
Bitte warten ..
Mitglied: LimAd89
12.04.2010 um 09:51 Uhr
Danke für die Tipps bis jetzt .

Auf den ersten Beitrag zurückzukommen.


Warning: mail() [function.mail]: Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in F:\Users\Kristof\Desktop\Neuer Ordner\xampp\htdocs\test2.php on line 53
Die Mail konnte nicht versendet werden.

ist die fehlermeldung die ich jetzt bekomme.
d.h. es ist warscheinlich wirklich, dass ich gmx nicht als mailserver angeben kann .
Bitte warten ..
Mitglied: dog
12.04.2010 um 10:25 Uhr
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...
Bitte warten ..
Mitglied: masterG
14.04.2010 um 13:27 Uhr
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/
Bitte warten ..
Neuester Wissensbeitrag
Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (33)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (21)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...

Windows Netzwerk
Windows 10 RDP geht nicht (18)

Frage von Fiasko zum Thema Windows Netzwerk ...