SMTP-Probleme untersuchen

  • Dazu gibt es eine sehr ausführliche Anleitung von Daniel Bradler in diesem Thread:
    Mailversand nicht mehr möglich


    -quote--->
    ( ... )


    Ich würde das einmal mit strace genauer untersuchen:


    Zunächst sollte man mit "telnet $server 25" eine SMTP-Verbindung öffnen (ggf. direkt vom Server aus mit localhost als $server). Anschliessend muss die Prozess-ID des tcpservers, der die Sitzung verwaltet, herausgefunden werden. Diese wird z.B. ins message-Logfile geschrieben:


    Zitat

    May 30 21:41:12 xxxx smtpd: 1117482072.878801 tcpserver: pid 5002 from 127.0.0.1


    Mit "strace -fF -p $pid -o /root/strace.log" können dann die System-Aufrufe in die Datei /root/strace.log protokolliert werden.


    In der telnet-Sitzung kann anschliessend ein SMTP-Login durchgeführt werden. Dazu benötigt man das folgende Perlskript "mimeencode.pl":


    Perl
    #!/usr/bin/perl -w
    use strict;
    use MIME::Decoder;
    my $decoder = new MIME::Decoder 'base64';
    $decoder->encode(\*STDIN, \*STDOUT);


    Es benötigt das Perlmodul MIME::Decode (ggf. mit "perl -MCPAN -e 'install MIME::Decoder'" nachinstallieren). Username und Paßwort können für das Login mit diesem Skript wie folgt kodiert werden:


    Code
    echo -en $username | perl mimeencode.pl # gibt kodierten Usernamen aus
    echo -en $passwort | perl mimeencode.pl # gibt kodiertes Passwort aus


    In der Telnet-Sitzung kann das Login wie folgt durchgeführt werden (Zeilen jeweils mit Return abschliessen):


    Code
    auth login
    kodierter Username
    kodiertes Paßwort


    Ein erfolgreiches Login wird mit "235 ok, go ahead (#2.0.0)" quittiert. Sollte die Verbingung noch nicht beendet worden sein, kann in der telnet-Sitzung noch eine Email aufgegeben werden:



    Nach Beenden der Verbindung sollten sich hoffentlich Hinweise auf die Fehlerursache in der Datei /root/strace.log finden.


    Viele Grüße,
    Daniel Bradler
    <---quote

  • Diese wird z.B. ins message-Logfile geschrieben:

    bei Debian in /var/log/syslog


    Dazu benötigt man das folgende Perlskript "mimeencode.pl":

    Perl
    #!/usr/bin/perl -w
    use strict;
    use MIME::Decoder;
    my $decoder = new MIME::Decoder 'base64';
    $decoder->encode(\*STDIN, \*STDOUT);

    Es benötigt das Perlmodul MIME::Decode (ggf. mit "perl -MCPAN -e 'install MIME::Decoder'" nachinstallieren). Username und Paßwort können für das Login mit diesem Skript wie folgt kodiert werden:

    Bash
    echo -en $username | perl mimeencode.pl # gibt kodierten Usernamen aus
    echo -en $passwort | perl mimeencode.pl # gibt kodiertes Passwort aus

    falls base64 installiert ist, geht es einfacher wie folgt:

    Bash
    echo -en $username |base64 # gibt kodierten Usernamen aus
    echo -en $passwort |base64 # gibt kodiertes Passwort aus