by Nobbie » 31. January 2014 13:15
Xampp alleine kann das nicht. Um Emails versenden zu können, benötigt man einen SMTP Server. Die mail() Funktion in Xampp stellt dabei nur die Schnittstelle zur Verfügung, welche Inhalte an wen geschickt werden sollen.
In php.ini muss die Einstellung getroffen werden, an welchem SMTP Server diese Mail übergeben wird (localhost ist dort voreingestellt). Das hat aber den (inzwischen unüberwindbaren) Nachteil, dass diese Schnittstelle es nicht ermöglicht, sich an einem SMTP Server anzumelden (es gibt schlicht keine Möglichkeit, einen Usernamen und ein Passwort anzugeben). Leider gibt es keine offiziellen SMTP Server mehr, die ohne Login arbeiten.
Im Xampp Paket ist außerdem mit MercuryMail ein Email Server enthalten, da ist auch ein sog. SMTP Server dabei, das musst Du dann aber einrichten und starten (ist nicht so ganz trivial). Dieser SMTP Server würde dann via localhost angesprochen, Du kannst dann einen eigenen SMTP aufbauen, der auch auf Login verzichtet. Da ist aber das Problem, dass Dein Absender mit einiger Sicherheit eine IP besitz (nämlich die, die Dein Provider vergeben hat), die von vielen Mail Hostern geblockt wird (mit Sicherheit bei GMX, die sind die Weltmeister im Blocken).
Die etwas einfachere Lösung besteht darin, das Paket sendmail (auch in Xampp enthalten) zu benutzen. Dazu muss in php.ini NICHT der SMTP Server localhost aktiviert werden, sondern man muss das Kommanda sendmail.exe aktivieren (das findest Du in php.ini).
In dem Ordner sendmail befindet sich ein Readme und ein sendmail.ini, in der sendmail.ini kannst Du dann seinerseits wieder einen anderen SMTP Server eintragen, hier ist es aber auch möglich, eine UserID und ein Passwort anzugeben, so dass man auf diesem Weg offizielle SMTP Server benutzen kann. Am einfachsten nimmst Du beispeilsweise dort den GMX SMTP Server, oder (falls Du dort einen Account hast) den von Googlemail. Es muss nur ein gültiger SMTP Server dort stehen und es muss ein gültiger User mit Passwort angeben werden.
Die letzte Möglichkeit besteht darin, diesen ganzen Hokus Pokus sein zu lassen (viele bekommen das nicht ans Laufen, obwohl es eigentlich nicht schwer ist, aber es ist lästig zu debuggen) und auch auf die PHP mail() Funktion zu verzichen, stattdessen den sog. "phpmailer" zu benutzen, das ist eine frei downloadbare PHP Klasse, die direkt Mails senden kann (allerdings auch nur via SMTP Server). Ich hatte da mal im englischsprachigen Bereich eine Demo, das war eigentlich festgetackert, aber ist nicht mehr da. Vielleicht weiß "Altrea" mehr dazu, wo diese Postings sind.
Aber beim phpmailer sind auch viele Beispiel dabei.
Und - ja, das ist kompliziert. Emails versenden ist nicht einfach. Man muss ziemlich genau wissen, was man tut und braucht.