Mail-function PHP funktioniert nicht mehr?

4 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Die mail-Funktion sollte man nicht verwenden. Sie sendet unauthentifiziert E-Mails über das lokale Mail-System - das kann je nach Konstellation zwischen sendendem und empfangenden Server problematisch sein.

Beispiel: der empfangende Server lehnt unauthentifiziert gesendete Mails ab. Das ist ein Antispam-Kriterium was durch den Betreiber des empfangenden Servers jederzeit gesetzt werden könnte. Solange Du diesen nicht selbst betreibst, kann das einer von vielen Gründen sein wieso es "plötzlich" nicht mehr geht. Ebenso kann der sendende Server (mit deiner Webseite) inzwischen auf ein oder mehreren Blacklisten stehen, weshalb der empfangende Server das ebenfalls nicht mehr zulässt.

Die optimale Lösung wäre, wenn Du statt mail() den phpmailer verwendest:
https://github.com/PHPMailer/PHPMailer
Damit kannst Du authentifiziert E-Mails auch direkt über den Mail-Server deines Mail-Dienstleisters schicken - und sie kommen auch sicher an.

Woher ich das weiß:Berufserfahrung
RANGObro 
Fragesteller
 11.11.2019, 21:41

Sry, sie sind im Spam ordner gelandet. Aber ich gucke mir mal phpmailer an. das klingt interessant🤔

0
threadi  11.11.2019, 21:42
@RANGObro

D.h. dein Mail-Dienstleister hat sie auf Grund der beim senden verwendeten Parameter als Spam erkannt. Noch mehr ein Grund auf mail() zu verzichten.

0
RANGObro 
Fragesteller
 11.11.2019, 21:43
@threadi

Wie verwende ich denn eine Library in PHP?

0
regex9  11.11.2019, 21:49
@RANGObro

Schau auf die GitHub-Seite zu PHPMailer. Dort wird alles beschrieben, was nötig ist.

1

Die mail() - Funktion kann auch fehlschlagen, wenn du mit if (mail(...)) { ...nachschaust, was da raus kommt, erfährst du zumindest, ob es schon da fehlschlägt.

Ansonsten musst du bei dem Provider schauen, es gibt Provider, die Mails per PHP begrenzen und wo du ggfs. ein Limit erst erhöhen musst, um weitere Mails zu senden, oder aber es braucht im mail()-Aufruf den letzten Parameter mit einem "-f absender@example.com"...

PS: Wenn du das schon ein paar getestet hat, schaue vorher mal in deinem Spamordner, evtl. liegen die da jetzt...

Woher ich das weiß:Berufserfahrung – Softwareentwickler & Admin
RANGObro 
Fragesteller
 11.11.2019, 21:38

Der spam ordner🤦‍♂️ Daran lag es. Danke sehr ;)

0
regex9  11.11.2019, 21:48
@RANGObro

Demnach hast du die Rückgabe also doch nicht geprüft.

0
RANGObro 
Fragesteller
 13.11.2019, 15:29
@regex9

Doch aber ich denke du meinst etwas anderes mit Rückgabe. Sry

0

Das erste Problem liegt darin, dass du vor dem PHP Tag schon ein PHP-Dokument inkludierst (testmail.inc.php). Das erkennt der Webserver natürlich nicht. Wenn dies nicht der Fehler ist, kann es auch an deinem Mail oder Webhostingprovider liegen.

Woher ich das weiß:Hobby
regex9  11.11.2019, 21:32

Vor dem PHP-Tag steht nur der Dateiname. Der sollte ganz sicher nicht zum Code gehören, es ist nur ein Formatierungsfehler in der Fragestellung.

0
Svenwas3f  11.11.2019, 21:32
@regex9

Achso ich dachte hier wird eine Datei inkludiert um eine eigene Mailfunktion zu haben. Dann ist dies natürlich kein Fehler. Sorry

0

Welche Rückgabe liefert die mail-Funktion und was sagt dir das Error Reporting?

RANGObro 
Fragesteller
 11.11.2019, 21:31

Nichts. Es gibt keine Fehler und alles funktioniert, bis auf dass ich keine Mail bekomme

0
regex9  11.11.2019, 21:35
@RANGObro

Wenn du nichts bei einer Ausgabe zurückbekommst, deutet das daraufhin, dass schon PHP selbst die Mail nicht herausschicken konnte.

0
RANGObro 
Fragesteller
 11.11.2019, 21:36
@regex9

Aber woran kann das liegen? Ich habe nichts geändert, weder an der Server konfiguration, noch an den scripts :(

0