Warum ist das so und warum ist die Einbindung des PHP-Mailers keine Krücke und somit die beste Lösung?
Ganz einfach. Die Mail-Funktion setzt keine Mail-Header automatisch, darum muss man sich selber kümmern. Dabei kann man sehr leicht Fehler machen und das Ergebnis ist dann, dass die Mail nicht ankommt oder im Spam-Ordner verschwindet. Außerdem ist eine Authentifizierung des Absender damit nicht möglich, allerdings verlangen viele Mail-Server genau diese Authentifizierung. Weiterhin kannst du mit der Mail-Funktion keine Mails per SSL versenden, auch das ist ein Ko-Kriterium für viele Mail-Server. Zu dem kommt noch, dass die Mail-Funktion keine Auskunft darüber gibt, ob die Mail auch tatsächlich gesendet wurde. Der boolsche Wert, den die Funktion zurück gibt, hilft kein Stück weiter. Aus der Doku zur mail-Funktion:
ZitatGibt true zurück, wenn die Mail erfolgreich zur Zustellung angenommen wurde, andernfalls false.
Es ist wichtig zu beachten, dass nur weil die Mail zur Zustellung angenommen wurde, dies NICHT bedeutet, dass die Post auch tatsächlich das vorgesehene Ziel erreichen wird.
Ich denke, das sind genug Gründe, um auf eine fertige Mail-Klasse w.z.B den phpMailer zurückzugreifen, mit dem man eher auf der sicheren Seite ist.