Kein Mailversandt aus Webanwendung, obwohl php mail() funktioniert

Status
Für weitere Antworten geschlossen.

mlight

Benutzer
Mitglied seit
09. Mrz 2011
Beiträge
25
Punkte für Reaktionen
1
Punkte
0
Hallo zusammen,

ich habe auf meiner DS211 seit Kurzem "runalyze" (www.runalyze.de, ein webbasiertes Lauftagebuch, sehr spannende Sache) am laufen. Für mich besonders reizvoll, da ich alles lokal verfügbar habe und weder in irgendeine Cloud laden muss, noch alles in sozialen Netzwerken geteilt wird.

Einziger Haken ist, dass beim erstellen neuer Benutzer (über die Weboberfläche) die Mail mit dem Link zur Aktivierung nicht versendet werden kann. Zwar kann man die Aktivierung auch manuell in der Datenbank erledigen, aber mich würde trotzdem interessieren, warum das nicht geht.

Grundsätzlich funktioniert das Verschicken per php mail() einwandfrei:
PHP:
<?php
echo mail("empfaenger@domain.de", "Betreff", "Nachricht","From: <sender@domain.de>");
?>
Ich vermute daher, dass das Problem irgendwo im Detail liegt. Auf Anfrage bei den Entwicklern wurde mir der Code für den Aufruf der Mailfunktion mitgeteilt, leider übersteigt das ein bisschen meine Programierkenntnisse...
Wir verwenden in /inc/system/class.System.php, ab Zeile 52:

PHP:
static public function sendMail($to, $subject, $message) {
   $header = "From: Runalyze <mail@runalyze.de>\nMIME-Version: 1.0\nContent-type: text/html; charset=UTF-8\n";

   return mail($to, $subject, $message, $header);
}
Und das wird aufgerufen in /inc/system/class.AccountHandler.php, in Zeile 204:
PHP:
if (System::sendMail($account['mail'], $subject, $message))
Ich vermute, dass in diesem Fall den Server der Header irgendwie stört.

Fallen euch dabei spontan irgendwelche Unstimmigkeiten auf, die das Verschicken der Mails verhindern könnten? Eine genaue Fehlermeldung wird leider nicht angezeigt. Bei Bedarf kann ich auch noch weitere Teile des Codes hochladen.

Vielen Dank schon mal und viele Grüße
Moritz
 

fpo4711

Benutzer
Mitglied seit
26. Mai 2010
Beiträge
2.772
Punkte für Reaktionen
1
Punkte
0
Hallo mlight,

ich finde da definitiv nichts. Die Funktion wird korrekt aufgerufen. Und wenn Du sagst mail() funktioniert dann kann es nur an irgendwelchen Sachen liegen die mit den Variablen übermittelt werden. Sollte mail() aber nicht funktionieren, dann könnte es an den Einstellungen unter Systemsteuerung / Benachrichtigung liegen.

Gruß Frank
 

mlight

Benutzer
Mitglied seit
09. Mrz 2011
Beiträge
25
Punkte für Reaktionen
1
Punkte
0
Wie gesagt, mail() mit direkt eingetragenen Werten funktioniert, die Einstellungen in der Systemsteuerung sollten also passen.
Ich hab allerdings gerade noch mal den Code aus der Webanwendung einzeln getestet. Wenn ich
PHP:
<?php
// $header = "From: Runalyze <mail@runalyze.de>\nMIME-Version: 1.0\nContent-type: text/html; charset=UTF-8\n";
$header = "From: Runalyze <mail@runalyze.de>";
$to = "example@domain.de";
$subject = "Test";
$message = "Mit Header";

echo mail($to, $subject, $message, $header); 
?>
ausführe wird nichts versendet. Wenn ich dann aber die letzte Zeile ändere, wird die Mail verschickt:
PHP:
<?php
// $header = "From: Runalyze <mail@runalyze.de>\nMIME-Version: 1.0\nContent-type: text/html; charset=UTF-8\n";
$header = "From: Runalyze <mail@runalyze.de>";
$to = "example@domain.de";
$subject = "Test";
$message = "Ohne Header";

echo mail($to, $subject, $message); 
?>
 

mlight

Benutzer
Mitglied seit
09. Mrz 2011
Beiträge
25
Punkte für Reaktionen
1
Punkte
0
Ok, Fehler gefunden. Ich kann als Absender nur meine eigene Mailadresse angeben. Dann funktioniert alles. War mir so nicht bewusst.
Trotzdem Danke für die Hilfe!
 

fpo4711

Benutzer
Mitglied seit
26. Mai 2010
Beiträge
2.772
Punkte für Reaktionen
1
Punkte
0
Ok, Fehler gefunden. Ich kann als Absender nur meine eigene Mailadresse angeben. Dann funktioniert alles.

Das die DS das nur unter der eingetragenen eMail-Adresse als Absender versendet war mir bekannt. Allerdings war ich immer der Meinung hier passiert ein Ersetzen auf der DS (bzw. passiert das auch bei mir). Hattest Du unter Primäre Mail-Adresse in der Systemsteuerung / Benachrichtigung eine Eingabe gemacht? Und wenn dich das nicht belastet, wie ist dein Mailprovider?

Gruß Frank
 

mlight

Benutzer
Mitglied seit
09. Mrz 2011
Beiträge
25
Punkte für Reaktionen
1
Punkte
0
Macht ja irgendwie auch Sinn, dass man nicht eine beliebige Adresse als Absender angeben kann, sondern nur die, von der die Mail wirklich kommt... Als primäre Adresse ist genau die Adresse eingetragen, die auch der Absender ist (Mail geht also an mich selbst).
Provider ist bei mir GMX. Und jetzt wo ich darüber nachdenke, meine ich mich wage zu erinnern, dass ich schon mal Probleme mit dem Absender hatte (in dem Fall aber aus Thunderbird). Vielleicht ist GMX da auch ein bisschen empfindlicher als ein eigener oder gemieteter Mailserver?
Hab das ganze auch gerade noch mal isoliert getestet. Es geht alles, solange ich als Absenderadresse im Header eine beliebige meiner Adressen angebe die zum meinem GMX-Konto gehören. Ob es sich dabei um die in der DS eingetragene Adresse handelt oder eine andere scheint keine Rolle zu spielen. Der "Fehler", wenn man das Verhalten als solchen betrachten möchte, liegt also definitv bei meinem Mailanbieter.
Ich betrachte das Thema damit für mich als gelöst, vielen Dank für den Input.
Moritz
 

fpo4711

Benutzer
Mitglied seit
26. Mai 2010
Beiträge
2.772
Punkte für Reaktionen
1
Punkte
0
Meine Frage war auch nur interessenhalber. Scheinbar werden die Header eben beim Provider manipuliert. Ich dachte in der Vergangenheit das dies auf der DS passiert. Naja, man lernt eben nie aus. Danke jedenfalls für die Rückmeldung.

Gruß Frank
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat