Der Martin: php mail() funktioniert unzuverlässig...

Beitrag lesen

n'Abend,

ich habe gerade entdeckt, dass meine mail() Funktion unzuverlässig ist.

na, herzlichen Glückwunsch. ;-)

Manche Mails werden zugestellt, andere nicht.

Ja. Die PHP-Funktion mail() tut auch nichts weiter, als die Mailnachricht in die Warteschlange zum Versand einzureihen. Wenn das gelingt, meldet die Funktion "Erfolg". Über das Versenden an sich erfährst du aber nichts mehr.

Ich habe das skript so eingerichtet, dass es eine Bestätigung an den Absender und gleichzeitig die Mail an mich sendet. Auf der Website wird eine Bestätigung bei erfolgreichem Versand angezeigt. Eigenartig ist, dass der Erfolg bestätigt wird, auch wenn nur eine der beiden Mails ankommt, weshalb ich eigentlich davon ausgehen muss, dass auch die zweite Mail zumindest aus der Sicht des Scripts erfolgreich versandt wurde.

Ja: Sie wurde erfolgreich zum Versand gegeben.

  1. Gibt es eine Möglichkeit, in php ein Logfile auszulesen, das mir alle vergangenen Sendeversuche anzeigt?

Nein. Da müsstest du eher das Log deines MTA befragen, wenn es ein solches gibt.

  1. Was kann ich verändern??

Du könntest den kompletten SMTP-Dialog selbst realisieren. Das möchte man aber normalerweise nicht. Denn auch wenn das SMTP-Protokoll eigentlich recht einfach ist, liegt der Teufel im Detail. Sogar in mehreren Details.

if (mail('office@test.com','Nachricht von '.$_POST['vorname'].' '.$_POST['nachname'],stripslashes($_POST['message']), $extra)
and mail($_POST['email'],'Kopie Ihrer Nachricht ',stripslashes($_POST['message']), $extra)){
echo"<br /><div id='erfolg'>Ihre Nachricht wurde versendet.<br />Sie erhalten eine Bestätigung an Ihre Emailadresse ".$_POST['email_v'].' .</div>';  }
else echo"Fehler beim Senden der Nachricht. Bitte Probieren Sie es zu einem späteren Zeitpunkt oder kontaktieren sie uns per <a href='kontakt.php'>Telefon</a>.";
}

Die Verwendung der Funktion stripslashes() ist ein Indiz, dass du noch etwas anderes gravierend falsch machst. Und erst recht die Tatsache, dass du POST-Parameter ungeprüft verwendest. Da könnte man dir sonstwas unterjubeln.

So long,
 Martin

--
Computer müssen weiblich sein: Eigensinnig, schwer zu durchschauen, immer für Überraschungen gut - aber man möchte sie nicht missen.