sendmail Problem

Cyberchriss

Registered User
Hallöchen!

Seitdem ich meinen vserver von Redhat 7.3 auf 9.0 upgegradet habe, will mein smtp nicht mehr über mein webformular senden.

hier ein Auszug aus dem Log:

from=apache, size=864, class=0, nrcpts=1, msgid=<200404151151.i3FBpPk1012160@fragstealer.de>, relay=apache@localhost

sendmail[12160]: i3FBpPk1012160: to="cyberchriss@fragstealer.de" <cyberchriss@fragstealer.de>, ctladdr=apache (48/48), delay=00:00:00, xdelay=00:00:00, mailer=relay, pri=30263, relay=[127.0.0.1] [127.0.0.1], dsn=5.6.0, stat=Data format error

sendmail[12160]: i3FBpPk1012160: i3FBpPk2012160: DSN: Data format error

sendmail[12227]: i3FBpPn0012227: <apache@fragstealer.de>... No such user here

sendmail[12160]: i3FBpPk2012160: to=apache, delay=00:00:00, xdelay=00:00:00, mailer=relay, pri=31888, relay=[127.0.0.1], dsn=5.3.0, stat=User unknown

sendmail[12227]: i3FBpPn0012227: from=<>, size=1888, class=0, nrcpts=0, proto=ESMTP, daemon=MSA, relay=localhost.localdomain [127.0.0.1]

sendmail[12160]: i3FBpPk2012160: i3FBpPk3012160: return to sender: User unknown

Könnte mir jemand einen Tipp geben, wie ich jetzt am besten vorgehen sol, um dieses Problem zu lösen?
 
Folgendes fällt mir auf:
Cyberchriss said:
sendmail[12160]: i3FBpPk1012160: i3FBpPk2012160: DSN: Data format error
Sendmail ist mit dem Daten-Format nicht einverstanden. Den Fehler könnte man evtl. im Webmail suchen.

Cyberchriss said:
sendmail[12227]: i3FBpPn0012227: <apache@fragstealer.de>... No such user here
Und hier hat sendmail versucht eine Fehlermeldung zu schicken.
Wenn Du den Webmailer häufiger nutzt, solltest Du diese Emails auf eine bestehende Adresse umleiten, damit Du eventuelle weitere Fehler mitbekommst.

huschi.
 
Hier ist ein Auszug aus dem entsprechenden PHP-Script:

// send mail
if (sendMemberMail($sendtype,$mailtext,$tempgroups,"",$sendas,$subject,"",$priority))
{
$vwartpl->cache("admin_email_membermailconfirm");
eval("\$vwartpl->output(\"".$vwartpl->get("admin_header")."\");");
eval("\$vwartpl->output(\"".$vwartpl->get("admin_email_membermailconfirm",1)."\");");
exit;
}
else
{
$vwartpl->cache("admin_email_membermailfailed");
$moreerrors = "<li>An error accrued during the mail process</li>";
eval("\$vwartpl->output(\"".$vwartpl->get("admin_header")."\");");
eval("\$vwartpl->output(\"".$vwartpl->get("admin_email_membermailfailed",1)."\");");
exit;
}
}

Hiebei wird ein Passworrt an die angegebene mail verschickt - dabei tritt o.g. Fehlermeldung auf. Kann es sein, dass dies an den PHP Einstellungen liegt?
 
Cyberchriss said:
// send mail
if (sendMemberMail($sendtype,$mailtext,$tempgroups,"",$sendas,$subject,"",$priority))
{
Hier wird zwar der Mailversand eingeleitet, aber die Funktion sendMemberMail() verschickt die Mail erst. Dort steht erst der interessante Teil.

Sobald Du die Antwortadresse eingerichtet hast, könnte es sein, daß Du eine detailiertere Fehlermeldung erhälst.

Zusätzlich könntest Du in /etc/php.ini mal nach 'mail' suchen und rausfinden, welcher Mailer genutzt wird. (default: 'sendmail -t -i')

huschi.
 
Bei mir ist ein alias namens apache vorhanden, welcher auf den Benutzer root zeigt. Wenn ich allerdings in die mailbox von root schaue, sehe ich dort keine errormail.
Da ich auch noch eine mailbox namens apache habe, habe ich den alias jetzt mal darauf gesetzt.

Wenn ich mich nicht täusche müsste dies der sendmail Befehl aus der sendMemberMail function sein:

mail("\"" . $row["name"] . "\" <" . $row["email"] . ">",$subject,$temptext,$header);

Ach ja - in der php.ini hatte ich zuvor schon nachgeschaut.
[mail function]
SMTP = localhost
sendmail_path = /usr/sbin/sendmail -t -i

schaut soweit normal aus.
 
Last edited by a moderator:
Ok, Dein Script nutzt die std. mail()-Funktion.
Dann liegt es vieleicht doch an der Konfiguration.

Speicher mal folgendes kleines PHP-Script auf Deinem Server und ruf es dann im Browser auf. (Es sollte 'ok' ausgeben.)
Danach versuchst Du es mal mit einer Mailadresse, die nicht auf dem Server liegt (also web.de oder gmx o.ä.).
PHP:
<?
if(mail("cyberchriss@fragstealer.de", "Test", "Test")) {
  echo "ok";
} else {
  echo "Fehler";
}
?>

Und dann postest Du wieder die Eintragung aus dem maillog.

huschi.
 
Back
Top