Kein lokaler EMail Empfänger auffindbar - virtual maps über mysql

Debian macht sich hervorragend als Web- und Mailserver. Schau auch in den " Tipps und Tricks"-Bereich.
Antworten
garagenclown
Beiträge: 2
Registriert: 26.07.2017 21:03:09

Kein lokaler EMail Empfänger auffindbar - virtual maps über mysql

Beitrag von garagenclown » 26.07.2017 22:47:06

Hallo zusammen,

da ich hier im Forum neu bin stelle ich mich kurz vor.
Ich beschäftige mich in meiner Freizeit mit meiner Familie.
Sollte zusätzlich einmal Zeit sein, höre ich noch die guten alten CDs an und widme mich etwas der IT.
Ich arbeite und wir wohnen in Süddeutschland.

Soviel zu meiner Person.

aufgrund eines Ausfalls in der Firma habe ich Zeit eines eigenen Mailserver einzurichten.

Dafür habe ich mir das Buch von Peer Heinlein "Das Postfix-Buch" ausgeliehen und einen dedizierten vServer angemietet.

Das Thema Mailserver habe ich soweit verstanden denke ich. Ist durch die ganzen Module nicht ganz easy aber ist machbar.

DNS und rDNS funktioniert.

Das Buch basiert in der mir vorliegenden Version auf SuSE Linux und postfix 1.1.7.

Sprich, die Beispiele und Konfigurationen des Postfix konnten nicht 1:1 übernommen werden und wurden mit Informationen aus dem Internet angereichert.

Aktuell verwende ich ein Debian 8 mit postfix 2.11.3 und mysql 5.5.

Wieso ich jetzt Unterstützung benötige hat folgenden Hintergrund.
Ein telnet localhost 25 wirft eine 550 5.1.1 Fehler beim Versuch eine lokale Mail einzuliefern.

mydomain wird mit x-y abgekürzt.

Code: Alles auswählen

Jul 26 21:00:24 x-y postfix/smtpd[1099]: NOQUEUE: reject: RCPT from localhost.localdomain[127.0.0.1]: 550 5.1.1 <v.nachname@x-y.de>: Recipient address rejected: User unknown in virtual alias table; from=<v.nachname@x-y.de> to=<v.nachname@x-y.de> proto=ESMTP helo=<mail.x-y.de>
Hier meine aktuelle Konfiguration. Die Konfig ist nur gering editiert.

/etc/postfix/main.cf

Code: Alles auswählen

 
# See /usr/share/postfix/main.cf.dist for a commented, more complete version


# Debian specific:  Specifying a file name will cause the first
# line of that file to be used as the name.  The Debian default
# is /etc/mailname.
#myorigin = /etc/mailname

smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
smtp_helo_name = $myhostname
biff = no

# appending .domain is the MUA's job.
append_dot_mydomain = no

# Uncomment the next line to generate "delayed mail" warnings
#delay_warning_time = 4h

readme_directory = no

# TLS parameters
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

# See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for
# information on enabling SSL in the smtp client.

smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
myhostname = mail.x-y.de
#myhostname = euve12345.serverprofi24.de
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
mydestination = localdomain, localhost, localhost.localdomain, localhost, euve12345.serverprofi24.de
relayhost =
relay_domains = $mydestination, mail.x-y.de
mynetworks = 192.168.0.0/24, 127.0.0.1, xx.yy.zz.aa
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = 127.0.0.1
inet_protocols = ipv4
virtual_maps = hash:/etc/postfix/virtual
maximal_queue_lifetime = 3d
bounce_queue_lifetime = 3d
#pfad der vor jede Maildir-Angabe vorgehaengt wird
virtual_mailbox_base = /var/spool/maildirs
#die nutzer-ids zum abspeichern der mails
virtual_uid_maps=mysql:/etc/postfix/ids.mysql
virtual_gid_maps=mysql:/etc/postfix/ids.mysql
#der pfad zum maildir
virtual_mailbox_maps=mysql:/etc/postfix/mailbox.mysql
#minimale uid/gid die aus der datenbank akzeptiert wird
virtual_minimum_uid = 5000
mydomain = x-y.de
/etc/postfix/ids.mysql

Code: Alles auswählen

user=postfix
password=Pwd
dbname=mailbase
table=mailbase
select_field=uid
where_field=id
hosts=127.0.0.1:3306
/etc/postfix/mailbox.mysql

Code: Alles auswählen

user=postfix
password=Pwd
dbname=mailbase
table=mailbase
select_field=maildir
where_field=id
hosts=127.0.0.1:3306
Ein telnet port 3306 funktioniert.
Ein lsof -i :3306 funktioniert.

Code: Alles auswählen

root@x-y:/etc/postfix# lsof -i :3306
COMMAND PID  USER   FD   TYPE     DEVICE SIZE/OFF NODE NAME
mysqld  768 mysql   10u  IPv4 1006924067      0t0  TCP localhost.localdomain:mysql (LISTEN)
Der Inhalt der mailbase Tabelle:

Code: Alles auswählen

mysql> select * from mailbase;
+----------------------------+-------------------------------------+------+------+----------+------------------+
| id                         | maildir                             | uid  | gid  | password | home             |
+----------------------------+-------------------------------------+------+------+----------+------------------+
| v.nachname@x-y.de | freemail.x-y.de/vnachname/ | 5001 | 5001 | pwd | /home/mailsystem |
+----------------------------+-------------------------------------+------+------+----------+------------------+
1 row in set (0.00 sec)
Das Mapping der uid zw. Der mysql Tabelle und der User Daiei.
/etc/passwd

Code: Alles auswählen

...
mailsystem:x:5001:5001::/var/spool/postfix:/bin/false
Ich hatte auch schonmal versucht die id in der Tabelle auf "v.nachname@localhost.localdomain" zu ändern.
Hat aber nichts bewirkt.

Eine Abfrage über postmap liefert folgendes:

Code: Alles auswählen

postmap -d v.nachname@x-y.de mysql:/etc/postfix/ids.mysql
Ergebnis: 5001

Ich hoffe ihr könnt mir hier bei meinem Problem weiterhelfen.

Ein großes Dankeschön bereits im Vorraus

garagenclown

Benutzeravatar
HZB
Beiträge: 377
Registriert: 22.10.2003 11:52:15
Wohnort: Wien

Re: Kein lokaler EMail Empfänger auffindbar - virtual maps über mysql

Beitrag von HZB » 10.08.2017 15:54:08

Dein Mailserver versucht Dir mitzuteilen, dass er den betreffenden User nicht findet.
Es fehlt wohl das Mapping in /etc/postfix/virtual. Kannst Du aber ganz leicht testen:

Code: Alles auswählen

postmap -q v.nachname@x-y.de hash:/etc/postfix/virtual

TomL
Beiträge: 3706
Registriert: 24.07.2014 10:56:59

Re: Kein lokaler EMail Empfänger auffindbar - virtual maps über mysql

Beitrag von TomL » 10.08.2017 18:51:34

Sorry... wenn ich mich hier unqualifiziert einmische, weil zur Lösung kann ich jetzt nix beitragen - aber ich habe vor einiger Zeit ein ähnliches Projekt (Dovecot + Postfix) abgeschlossen und für mich dokumentiert. Weil es bei mir allerdings nur um Familie ging, habe ich mich gegen MySQL (Kanonen und ein paar Spatzen) entschieden und für die wenigen Leute virtuelle User in Dovecot angelegt. Wenn Dich das interessiert, gib mir einen Hinweis.
vg, Thomas

Benutzeravatar
weshalb
Beiträge: 905
Registriert: 16.05.2012 14:19:49

Re: Kein lokaler EMail Empfänger auffindbar - virtual maps über mysql

Beitrag von weshalb » 11.08.2017 09:11:37

Schließe mich TomL an. Ich weiß nun nicht, wie groß deine Familie ist aber mit

Code: Alles auswählen

virtual_alias_maps = hash:/etc/postfix/virtual
sender_dependent_relayhost_maps = hash:/etc/postfix/relaymaps
smtp_sasl_password_maps = hash:/etc/postfix/sasl_password
smtpd_sender_login_maps = hash:/etc/postfix/smtpdsender
den 4 Maps (Beispielnamen)solltest du locker auskommen.

Paddie

Re: Kein lokaler EMail Empfänger auffindbar - virtual maps über mysql

Beitrag von Paddie » 11.08.2017 09:19:36

Wie schon geschrieben wurde fehlt dir eine Table für die Aliasse.

Ich habe hier dafür eine simple Table mit

Code: Alles auswählen

           address           |                   userid                    
-----------------------------+---------------------------------------------
dazu dann die virtual.cf

Code: Alles auswählen

user=$user
password=$password
dbname=mails
table=virtual
select_field=userid
where_field=address
hosts=localhost
dann noch in der main.cf

Code: Alles auswählen

 virtual_maps = pgsql:/etc/postfix/virtual.cf
Das sollte es gewesen sein.

Ganz vergessen: natürlich mußt du da ein mysql hinschreiben ;-).

Gruß

Paddie

garagenclown
Beiträge: 2
Registriert: 26.07.2017 21:03:09

Re: Kein lokaler EMail Empfänger auffindbar - virtual maps über mysql

Beitrag von garagenclown » 26.11.2017 21:03:39

Hallo zusammen,

1. copy&paste Problem. - behoben
2. endlos loop auf maildomain! - behoben
Mailserver funktioniert jetzt.

Danke an Alle

Antworten