Virtuelle Emails landen unter falschen Pfad

grep666

New Member
Guten Morgen,
zur Zeit habe ich ein seltsames Problem. Nachdem ich einen alten Server mit viel Mühe auf virtuelle Domains umgestellt hatte, landen die Emails unter dem falschen Pfad.

Es gibt den Pfad '/home/Maildir/domain1/benutzer1' und den Pfad '/home/Maildir/domain2/benutzer2'

Das Problem ist, daß alle Emails für den Benutzer '/domain1/benutzer1' unter '/home/Maildir/' landen in einer Datei namens "1". Die Emails für den anderen, werden korrekt geliefert und können mit MUA ausgelesen werden.

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
inet_protocols = ipv4
mailbox_command = procmail -a "$EXTENSION"
mailbox_size_limit = 0
mydestination = $myhostname, localhost, 127.0.0.1
mydomain = domain1.com
myhostname = myserver.domain1.com
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
myorigin = $mydomain
readme_directory = /usr/share/doc/postfix
recipient_delimiter = +
relay_domains = domain3.com
relayhost =
smtp_tls_note_starttls_offer = yes
smtp_tls_security_level = may
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
smtpd_helo_required = yes
smtpd_recipient_restrictions = reject_non_fqdn_sender,  reject_non_fqdn_recipient,      reject_unknown_sender_domain,   reject_unknown_recipient_domain,        permit_sasl_authenticated,    permit_mynetworks,      reject_rbl_client zen.spamhaus.org,     reject_rbl_client ix.dnsbl.maintu.net,  reject_unauth_destination,      permit
smtpd_sasl_auth_enable = no
smtpd_sasl_security_options = noanonymous
smtpd_tls_cert_file = /etc/ssl/certs/postfix.pem
smtpd_tls_key_file = /etc/ssl/private/postfix.pem
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtpd_tls_session_cache_timeout = 3600s
smtpd_use_tls = yes
strict_rfc821_envelopes = yes
tls_random_prng_update_period = 3600s
tls_random_source = dev:/dev/urandom
virtual_alias_maps = mysql:/etc/postfix/mysql-virtual-alias-maps.cf
virtual_gid_maps = static:5000
virtual_mailbox_base = /home/Maildir
virtual_mailbox_domains = mysql:/etc/postfix/mysql-virtual-mailbox-domains.cf
virtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual-mailbox-maps.cf
virtual_uid_maps = static:5000

Die Frage ist - was könnte dafür verantwortlich sein, daß nur eine email ankommt, die andere nicht? Es ist natürlich entweder ein Eintrag oder eine Datei, sicherlich entscheidet aber nur ein Detail über dieses Problem.
 
In meiner sql Datenbank steht nirgendwo ein Pfad. Da gibt es nur Rubriken wie "user", "email", "password" und "alias".

Ich merke gerade, daß es an der Zustellung - sprich Zustellort - liegt. Der MUA schaut ja in der richtigen box nach:

Code:
Jun 24 13:03:02 redcon7 authdaemond: Authenticated: sysusername=<null>, sysuserid=5000, sysgroupid=5000, homedir=/home/vmailboxes/Maildir, address=username1@domain1.com, fullname=username1@domain1.com, maildir=/home/vmailboxes/Maildir/domain1.com/username1/, quota=<null>, options=<null>
Jun 24 13:03:02 redcon7 authdaemond: Authenticated: clearpasswd=XXXXXXXXXXX, passwd=XXXXXXXXX
Jun 24 13:03:02 redcon7 imapd: LOGIN, user=username1@domain1.com, ip=[::ffff:xx.xx.xx.xx], port=[55134], protocol=IMAP

Kann es sein, daß ich meine procmailrc ändern sollte?
So sieht die aus:

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

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

:0fw
| /usr/bin/spamc -f
./Maildir/.spam/

Der Pfad zu maildir ist '/home/vmailboxes/Maildir' (habe ihn geändert). Aber die Zeile "DEFAULT" zeigt auf $HOME.

Das '$HOME' ist doch wahrscheinlich '/home/username' nicht wahr? Wie sollte ich das anpassen damit es '/home/vmailboxes/Maildir/username' heisst? Da mehrere Benutzer genutzt werden, muss ich natürlich mit '$' Variablen arbeiten.
 
Last edited by a moderator:
Aha, ich habe mailbox_command deaktiviert. Bevor ich die Angaben zu mysql db poste, hier einmal die Nachricht, die ich vom mailerdaemon bekam:
This is the mail system at host myserver.domain1.com.

I'm sorry to have to inform you that your message could not
be delivered to one or more recipients. It's attached below.

For further assistance, please send mail to postmaster.

If you do so, please include this problem report. You can
delete your own text from the attached returned message.

The mail system

<useralias1@domain1.com> (expanded from <username1@domain1.com>): unknown user: "useralias1@domain1.com"

Es existiert eine mySQL Datenbank namens "virtual_mails", dazu wurde der db Benutzer "vmailuser" angelegt.

In der Datenbank "virtual_mails" gibt es 3 Tabellen
'virtual_domains', 'virtual_users' und 'virtual_aliases'

Die erste Tabelle - 'virtual_domains' hat folgende Spalten:
Code:
'id'
'name'
Die Tabelle 'virtual_users' - enthält folgende Spalten:
Code:
'id'
'domain_id'
'passwort'
'email'
In der Tabelle 'virtual_aliases' gibt es folgende:
Code:
'id'
'domain_id'
'source'
'destination'

In der letzten Tabelle steht unter "source" immer die Email Adrese, unter "destination" steht alias - sollte das umgekehrt sein? Denn die Fehlermeldung oben deutet auf ein Problem hin.
 
Last edited by a moderator:
In der letzten Tabelle steht unter "source" immer die Email Adrese, unter "destination" steht alias - sollte das umgekehrt sein? Denn die Fehlermeldung oben deutet auf ein Problem hin.
Möglich. Schau einfach in das von dir konfigurierte Mapping in /etc/postfix/mysql-virtual-alias-maps.cf :rolleyes:
 
Ich habe es wieder zurück umgestellt. Der Fehler kam weil ich einige Email Adressen und deren Aliase in der falschen Spalte in der mysql Tabelle hatte. Also vertauschte ich bei einigen Einträgen die Positionen. Leider wohl die falschen. Jetzt gibt es dies Fehlermeldung nicht mehr, aber die mails landen weiterhin unter dem falschen Pfad.

Also bin ich wieder am Anfang.

In der mysql-virtual-alias-maps.cf steht nur:
Code:
user = vmailuser
password = xxxxxxxxxx
hosts = 127.0.0.1
dbname = virtual_mails
query = SELECT destination FROM virtual_aliases WHERE source='%s'
 
Last edited by a moderator:
Ich habe herausgefunden, daß die Emails unter "/home/mailboxes/Maildir/1" landen wenn ich in der '/etc/courier/imapd' die vorletzte Zeile verändere:

Code:
ADDRESS=0
PORT=143
MAXDAEMONS=40
MAXPERIP=20
PIDFILE=/var/run/courier/imapd.pid
TCPDOPTS="-nodnslookup -noidentlookup"
LOGGEROPTS="-name=imapd"
IMAP_CAPABILITY="IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA IDLE"
IMAP_KEYWORDS=1
IMAP_ACL=1
IMAP_CAPABILITY_ORIG="IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA AUTH=CRAM-MD5 AUTH=CRAM-SHA1 AUTH=CRAM-SHA256 IDLE"
IMAP_PROXY=0
IMAP_PROXY_FOREIGN=0
IMAP_IDLE_TIMEOUT=60
IMAP_MAILBOX_SANITY_CHECK=1
IMAP_CAPABILITY_TLS="$IMAP_CAPABILITY AUTH=PLAIN"
IMAP_CAPABILITY_TLS_ORIG="$IMAP_CAPABILITY_ORIG AUTH=PLAIN"
IMAP_DISABLETHREADSORT=0
IMAP_CHECK_ALL_FOLDERS=0
IMAP_OBSOLETE_CLIENT=0
IMAP_UMASK=022
IMAP_ULIMITD=131072
IMAP_USELOCKS=1
IMAP_SHAREDINDEXFILE=/etc/courier/shared/index
IMAP_ENHANCEDIDLE=0
IMAP_TRASHFOLDERNAME=Trash
IMAP_EMPTYTRASH=Trash:7
IMAP_MOVE_EXPUNGE_TO_TRASH=0
SENDMAIL=/usr/sbin/sendmail
HEADERFROM=X-IMAP-Sender
IMAPDSTART=YES
MAILDIRPATH=/home/vmailboxes/Maildir/
AUTHMODULES="authdaemon"

Und ich habe jetzt auch festgestellt, daß ich irrigerweise davon ausging, daß nur eine domain betroffen ist - jedoch alle emails landen in der Datei "/home/vmailboxes/Maildir/1".

Die anderen Emails waren alt und alle neuen landen nicht unter dem korrekten Pfad '/home/vmailboxes/Maildir/domain/username'

:confused:
 
Last edited by a moderator:
Back
Top