Postfix - emails kommen nicht an

grep666

New Member
Grüsst euch Nachtschwärmer.

Ich habe einen uralt Debian Squeeze Server (naja, Installation ist ein paar monate alt) und kann emails von einem Postfach versenden. Doch es kommen keine Emails an. Wenn ich eine Email extern an den Server sende, sind alle mail logs bis auf 'mail.log' leer.

In der mail.log steht zu diesem Zeitpunkt folgendes (bei der Zeit 00:41:34)
Code:
root@debian-squeeze-x64-amd:/# /var/log/mail.log | tail -20
May 12 00:41:02 debian-squeeze-x64-amd imapd: Connection, ip=[::ffff:127.0.0.1]
May 12 00:41:03 debian-squeeze-x64-amd imapd: LOGIN, user=andrej, ip=[::ffff:127.0.0.1], port=[52207], protocol=IMAP
May 12 00:41:03 debian-squeeze-x64-amd imapd: LOGOUT, user=andrej, ip=[::ffff:127.0.0.1], headers=885, body=0, rcvd=314, sent=3122, time=0
May 12 00:41:03 debian-squeeze-x64-amd imapd: Connection, ip=[::ffff:127.0.0.1]
May 12 00:41:03 debian-squeeze-x64-amd imapd: LOGIN, user=andrej, ip=[::ffff:127.0.0.1], port=[52215], protocol=IMAP
May 12 00:41:03 debian-squeeze-x64-amd imapd: LOGOUT, user=andrej, ip=[::ffff:127.0.0.1], headers=0, body=0, rcvd=134, sent=1054, time=0
May 12 00:41:06 debian-squeeze-x64-amd imapd: Connection, ip=[::ffff:127.0.0.1]
May 12 00:41:06 debian-squeeze-x64-amd imapd: LOGIN, user=andrej, ip=[::ffff:127.0.0.1], port=[52223], protocol=IMAP
May 12 00:41:06 debian-squeeze-x64-amd imapd: LOGOUT, user=andrej, ip=[::ffff:127.0.0.1], headers=0, body=0, rcvd=119, sent=1054, time=0
May 12 00:41:34 debian-squeeze-x64-amd postfix/smtpd[5539]: connect from mailout-de.gmx.net[123.123.123.22]
May 12 00:41:34 debian-squeeze-x64-amd postfix/smtpd[5539]: AB274663608: client=mailout-de.gmx.net[123.123.123.22]
May 12 00:41:34 debian-squeeze-x64-amd postfix/cleanup[5542]: AB274663608: message-id=<20110511224133.80410@gmx.net>
May 12 00:41:34 debian-squeeze-x64-amd postfix/qmgr[1648]: AB274663608: from=<testaddr@gmx.de>, size=2505, nrcpt=1 (queue active)
May 12 00:41:34 debian-squeeze-x64-amd spamd[3020]: spamd: connection from localhost [127.0.0.1] at port 55999
May 12 00:41:34 debian-squeeze-x64-amd postfix/smtpd[5539]: disconnect from mailout-de.gmx.net[123.123.123.22]
May 12 00:41:34 debian-squeeze-x64-amd spamd[3020]: spamd: setuid to andrej succeeded
May 12 00:41:34 debian-squeeze-x64-amd spamd[3020]: spamd: processing message <20110511224133.80410@gmx.net> for andrej:1002
May 12 00:41:36 debian-squeeze-x64-amd spamd[3020]: spamd: clean message (0.0/5.0) for andrej:1002 in 2.1 seconds, 2568 bytes.
May 12 00:41:36 debian-squeeze-x64-amd spamd[3020]: spamd: result: . 0 - FREEMAIL_FROM,RCVD_IN_DNSWL_NONE,SPF_PASS scantime=2.1,size=2568,user=andrej,uid=1002,required_score=5.0,rhost=localhost,raddr=127.0.0.1,rport=55999,mid=<20110511224133.80410@gmx.net>,autolearn=ham
May 12 00:41:37 debian-squeeze-x64-amd spamd[3018]: prefork: child states: II

Auf dem server sind postfix, spamassassin, squirrelmail, procmail und sasl installiert. Ich kann mit squirrelmail das Postfach öffnen und emails absenden, aber es kommt garnichts an.

"autolearn=ham" deutet darauf hin, dass die mail den spamassassin passiert hatte.

Hat jemand vielleicht eine Idee die zur Lösung beiträgt oder einen tipp wo ich noch nachschauen könnte?
 
Dafür wäre nun interessant zu wissen, wo die Mail denn anschließend hin soll.

Am ehesten dürften dich ein Blick in die /etc/postfix/master.cf oder /etc/procmailrc weiterbringen.
 
morgen,
vielleicht liegt es an home_mailbox = Maildir/ ?
Ist also zu prüfen ob die Mails in den angegebenen Pfad überhaupt ankommen.
 
morgen,
vielleicht liegt es an home_mailbox = Maildir/ ?
Ist also zu prüfen ob die Mails in den angegebenen Pfad überhaupt ankommen.

Das wird das Logging vom procmail schon verraten.
Abgesehen davon, geht aus den bisher vorliegenden Informationen nicht hervor, dass die Auslieferung in ein Maildir erfolgen soll. Gibt ja auch noch das gute, alte mbox-Format ;)
 
Grüsst euch!
Ja die Emails sollen in "/home/username/Maildir" landen. Die Verzeichnisse sind angelegt und haben die nötigen Benutzerrechte.

Ich habe die procmailrc erstellt, aber da müssen paar Zeilen geändert werden wie ich sehe, denn ich habe keinen clamav, kein cyrus und kein sendmail.
Code:
# Procmail
LOGFILE="/var/log/procmail"
VERBOSE=off

DELIVERMAIL="/usr/lib/cyrus/deliver"
DAEMON="MAILER-DAEMON@mail.postfix-howto.de"
SENDMAIL="/usr/sbin/sendmail -i -f \
  MAILER-DAEMON\@mail.postfix-howto.de -t $SENDER"

# Mailbox-Zustellung
INBOX="$DELIVERMAIL -f $SENDER -a $USER $USER"

# Grundsaetzlich pruefen!
CHECK = 1

# Check
:0
* $CHECK ?? 1
{
    :0fw
    * < 110000
    | /usr/bin/spamc -u filter

    # Wann soll die Mail noch durch den Virenscanner?
    :0
    * ^X-Spam-Status: No .*$
    {
        :0fw
        * > 8000
        | /usr/bin/clamassassin
    }
}

# Viren bitte ab in die Tonne
:0w
* ^X-Virus-Status: Yes
/dev/null

:0 e
{
    EXITCODE=$?
    :0 w
    * EXITCODE ?? [75]
    {
        REC=`formail -zx"To:"`
        EXITCODE=0
        :0
        * ^X-Loop: bounce@postfix-howto.de
        /dev/null
        :0
        | formail -rk -I"Subject: Mail delivery \
         failed for user: $USER (MailAdr: $REC)" \
         -A"FROM: $DAEMON" -A"Precedence: junk" \
         -A"X-Loop: bounce@postfix-howto.de" | $SENDMAIL
    }
}

# an INBOX zustellen
:0w
| $INBOX

HOST

Ich glaube, ich hatte damals die angepasste procmailrc versehentlich gelöscht und nur diese ist mir geblieben. Ein Freund wollte sie für mich nochmal anpassen bzw. mir dabei helfen, der ist aber zur Zeit nicht mehr erreichbar.

Also brauche ich eine procmailrc die mehr auf meinen Fall passt - wo kriege ich die her oder kann man die obige anpassen?
 
Last edited by a moderator:
Bei deiner Beschreibung sollte folgende procmailrc schon reichen.

Code:
DEFAULT=$HOME/Maildir/
DROPPRIVS=yes
LOGABSTRACT=all
LOGFILE=/var/log/procmail.log

###############################################################################
# Procmail rules follows

:0fw
| /usr/bin/spamc -f
 
Danke!
Anbei die "master.cf" und "main.cf".
Code:
root@grep666:/ # grep -v '#' /etc/postfix/master.cf
smtp      inet  n       -       -       -       -       smtpd
pickup    fifo  n       -       -       60      1       pickup
cleanup   unix  n       -       -       -       0       cleanup
qmgr      fifo  n       -       n       300     1       qmgr
tlsmgr    unix  -       -       -       1000?   1       tlsmgr
rewrite   unix  -       -       -       -       -       trivial-rewrite
bounce    unix  -       -       -       -       0       bounce
defer     unix  -       -       -       -       0       bounce
trace     unix  -       -       -       -       0       bounce
verify    unix  -       -       -       -       1       verify
flush     unix  n       -       -       1000?   0       flush
proxymap  unix  -       -       n       -       -       proxymap
proxywrite unix -       -       n       -       1       proxymap
smtp      unix  -       -       -       -       -       smtp
relay     unix  -       -       -       -       -       smtp
        -o smtp_fallback_relay=
showq     unix  n       -       -       -       -       showq
error     unix  -       -       -       -       -       error
retry     unix  -       -       -       -       -       error
discard   unix  -       -       -       -       -       discard
local     unix  -       n       n       -       -       local
virtual   unix  -       n       n       -       -       virtual
lmtp      unix  -       -       -       -       -       lmtp
anvil     unix  -       -       -       -       1       anvil
scache    unix  -       -       -       -       1       scache
maildrop  unix  -       n       n       -       -       pipe
  flags=DRhu user=vmail argv=/usr/bin/maildrop -d ${recipient}
uucp      unix  -       n       n       -       -       pipe
  flags=Fqhu user=uucp argv=uux -r -n -z -a$sender - $nexthop!rmail ($recipient)
ifmail    unix  -       n       n       -       -       pipe
  flags=F user=ftn argv=/usr/lib/ifmail/ifmail -r $nexthop ($recipient)
bsmtp     unix  -       n       n       -       -       pipe
  flags=Fq. user=bsmtp argv=/usr/lib/bsmtp/bsmtp -t$nexthop -f$sender $recipient
scalemail-backend unix  -       n       n       -       2       pipe
  flags=R user=scalemail argv=/usr/lib/scalemail/bin/scalemail-store ${nexthop} ${user} ${extension}
mailman   unix  -       n       n       -       -       pipe
  flags=FR user=list argv=/usr/lib/mailman/bin/postfix-to-mailman.py
  ${nexthop} ${user}

Und main.cf
Code:
grep -v '#' /etc/postfix/main.cf

smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
biff = no
append_dot_mydomain = no
readme_directory = /usr/share/doc/postfix
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
myhostname = grep666.de
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = grep666.de
mydestination = grep666.de, localhost, localhost.localdomain, localhost
relayhost =
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
relay_domains = grep666.de, grep666.com
html_directory = /usr/share/doc/postfix/html
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes

smtpd_recipient_restrictions =
        permit_sasl_authenticated,
        permit_mynetworks,
        reject_unauth_destination,
        reject_unknown_recipient_domain,

smtpd_helo_restrictions = permit_mynetworks,
                          reject_invalid_hostname,
                          reject_non_fqdn_hostname,
                          reject_unknown_hostname,
smptd_sender_restrictions = reject_unknown_sender_domain

smtpd_helo_required = yes
strict_rfc821_envelopes = yes
home_mailbox = Maildir/

Ich habe so ziemlich 80% davon vergessen was ich alles gemacht hatte und zwar innerhalb von nur 4 Monaten. Verdammt!
 
Hi,
habe die procmailrc erstellt. Es passiert weiterhin nichts, emails kommen nicht an und die Datei "procmail.log" wurde nicht automatisch erstellt, ich musste dies mit touch machen. Aber sie ist weiterhin leer.

Das sagt mir mail.info wenn die test email den server erreicht
Code:
May 12 18:35:45 debian-squeeze-x64-amd postfix/smtpd[1765]: connect from mailout-de.gmx.net[123.123.12.23]
May 12 18:35:45 debian-squeeze-x64-amd postfix/smtpd[1765]: AE274663608: client=mailout-de.gmx.net[123.123.12.23]
May 12 18:35:46 debian-squeeze-x64-amd postfix/cleanup[1770]: AE274663608: message-id=<20110512162019.047709@gmx.net>
May 12 18:35:46 debian-squeeze-x64-amd postfix/qmgr[1678]: AE274663608: from=<testaddr@gmx.de>, size=2496, nrcpt=1 (queue active)
May 12 18:35:46 debian-squeeze-x64-amd procmail[1790]: Error while writing to "/var/log/procmail.log"
May 12 18:35:46 debian-squeeze-x64-amd spamd[1586]: spamd: connection from localhost [127.0.0.1] at port 37252
May 12 18:35:46 debian-squeeze-x64-amd postfix/smtpd[1765]: disconnect from mailout-de.gmx.net[123.123.12.23]
May 12 18:35:46 debian-squeeze-x64-amd spamd[1586]: spamd: setuid to andrej succeeded
May 12 18:35:46 debian-squeeze-x64-amd spamd[1586]: spamd: processing message <20110512162019.047709@gmx.net> for andrej:1002
May 12 18:35:48 debian-squeeze-x64-amd spamd[1586]: spamd: clean message (0.0/5.0) for andrej:1002 in 2.2 seconds, 2559 bytes.
May 12 18:35:48 debian-squeeze-x64-amd spamd[1586]: spamd: result: . 0 - FREEMAIL_FROM,RCVD_IN_DNSWL_NONE,SPF_PASS scantime=2.2,size=2559,user=andrej,uid=1002,required_score=5.0,rhost=localhost,raddr=127.0.0.1,rport=37252,mid=<20110512162019.047709@gmx.net>,autolearn=ham
May 12 18:35:48 debian-squeeze-x64-amd spamd[1589]: spamd: connection from localhost [127.0.0.1] at port 37257
May 12 18:35:48 debian-squeeze-x64-amd spamd[1589]: spamd: setuid to andrej succeeded
May 12 18:35:48 debian-squeeze-x64-amd spamd[1589]: spamd: processing message <20110512162019.047709@gmx.net> for andrej:1002
May 12 18:35:48 debian-squeeze-x64-amd spamd[1566]: prefork: child states: IB
Exakt in dem mom wenn eine email ankommt. Der "procmail.log" bleibt hingegen leer und andere geben auch nichts aus (mail.warn,mail.err)
 
Aha! Danke dir. Jetzt gibt endlich mail.info etwas brauchbares aus:
Code:
tail -f /var/log/mail.info
May 12 19:10:47 debian-squeeze-x64-amd postfix/smtpd[2237]: connect from mailout-de.gmx.net[123.123.12.23]
May 12 19:10:47 debian-squeeze-x64-amd postfix/smtpd[2237]: NOQUEUE: reject: RCPT from mailout-de.gmx.net[123.123.12.23]: 550 5.1.1 <andrej@domain.de>: Recipient address rejected: User unknown in local recipient table; from=<testmail@gmx.de> to=<andrej@domain.de> proto=SMTP helo=<mailout-de.gmx.net>
May 12 19:10:47 debian-squeeze-x64-amd postfix/smtpd[2237]: disconnect from mailout-de.gmx.net[123.123.12.23]

Empfänger unbekannt - wie bitte? Wie kann sich der Server selbst nicht kennen?

Rücklaufend erhielt ich eine mail von Mailer Daemon:
Code:
123.123.123.123 does_not_like_recipient./Remote_host_said:_550_5.1.1_<andrej@domain.de>:_Recipient_address_rejected:_User_unknown_in_local_recipient_table/Giving_up_on 123.123.123.123

Es gibt den Linux Benutzer "andrej" auf dem Server. Es gibt auch die Dateien "virtual_alias" und "virtual_domains" im Postfix Verzeichnis.
 
Last edited by a moderator:
Ich habe jetzt noch eine Ausgabe und zwar von procmail. Ich hatte ja die procmail.log datei unter /var/log/ angelegt, doch diese dann gelöscht.

Jetzt kommt
Code:
procmail[3758]: Error while writing to "/var/log/procmail.log"
 
Gibt es denn auch die Email-Adresse "andrej@domain.de"? Weil das meckert dein Postfix ja an. Und wieso löschtst du ein Logfile, was sich in schreibendem Zugriff befindet?
 
Ich habe jetzt einiges rausgefunden. Im Augenblick eines "Geistes Blitzes" habe ich nach den Fehlermeldungen sehr tief im netz gegraben.

1. Zunächst habe ich die procmail.log wiederhergestellt, aber mit den Rechten 666 für "root:mail".

2. Ich habe die Datei /etc/aliases bearbeitet in dem ich folgendes eintrug
Code:
andrej = andrej
Danach natürlich "newaliases".

3. Ich habe dann plötzlich in der procmail.log etwas sehen können:
Code:
cat /var/log/procmail.log
procmail: Couldn't chdir to "HOME/Maildir"
procmail: Incomplete recipe
procmail: Lock failure on "HOME/Maildir.lock"
procmail: Error while writing to "HOME/Maildir"
From testmail@gmx.de  Thu May 12 21:22:47 2011
 Subject: test 11
  Folder: /var/mail/andrej                                              2501

Also muss etwas mit den Rechten auf den "Maildir" Ordnern nicht stimmen - welche sollte ich setzen? Jetzt ist der Besitzer "andrej:users" und die Rechte sind 700. Ich schätze ich brauche 766 und Besitzer andrej:mail oder?
 
Du willst Ordner und Dateien nicht world-writeable setzen.
Des weiteren scheint in der procmailrc ein $ zu fehlen laut der Fehlermeldung. Prüf da die DEFAULT-Zeile nochmal.

700 auf den Maildir-Ordner ist durchaus ausreichend.
 
Meine procmailrc:
Code:
DEFAULT=$HOME/Maildir/
DROPPRIVS=yes
LOGABSTRACT=all
LOGFILE=/var/log/procmail.log

#############################################################
# Procmail rules follows

:0fw
| /usr/bin/spamc -f

Kann das ein globales Variablenproblem sein? Ich habe nämlich ein prob wenn ich mich auf dem server anmelde. Ich melde mich als unpriv benutzer an, bevor ich dann mit su als root anmelde.

Noch bevor ich das tue (also su anmelden) habe ich ein problem mit den prompt und einigen Befehlen. Das prompt sieht nur so aus "$" und einige Befehle scheinen unbekannt zu sein. Kann das damit zusammenhängen?

Übrigens, die emails kommen in "/var/mail/andrej" an und werden dort eingetragen.
 
Last edited by a moderator:
hier ist sie:
Code:
postconf -n
alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
broken_sasl_auth_clients = yes
config_directory = /etc/postfix
home_mailbox = Maildir/
html_directory = /usr/share/doc/postfix/html
inet_interfaces = all
mailbox_command = procmail -a "$EXTENSION"
mailbox_size_limit = 0
mydestination = $mydomain, localhost
mydomain = mydomain.tld
myhostname = mydomain.tld
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
myorigin = $myhostname
readme_directory = /usr/share/doc/postfix
recipient_delimiter = +
relay_domains = mydomain.tld, mydomain2.tld, mydomain3.tld
relayhost =
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
biff = no       
append_dot_mydomain = no
smtpd_helo_required = yes
smtpd_helo_restrictions = permit_mynetworks, reject_invalid_hostname, reject_non_fqdn_hostname, reject_unknown_hostname,
smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination, reject_unknown_recipient_domain,
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_tls_cert_file = /etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file = /etc/ssl/private/ssl-cert-snakeoil.key
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtpd_use_tls = yes
strict_rfc821_envelopes = yes

Natürlich habe ich die FQDN und durch "mydomain.tld" ersetzt.
 
Last edited by a moderator:
Scheint alles ok zu sein, sonst hätte ich schon feedback - wie ich vermute.

Das muss etwas mit der Variable "Home" zu tun haben. Offenbar wird das home Verzeichnis des Benutzers nicht gefunden.

Bitte um Hilfe!
 
Last edited by a moderator:
zu dem procmail fehler fällt mir irgendwie nichts ein.

2. Ich habe die Datei /etc/aliases bearbeitet in dem ich folgendes eintrug
Code:
andrej = andrej
Danach natürlich "newaliases".

sollte glaub ich so aussehen oder?
Code:
andrej:   andrej
 
Back
Top