[postfix-users] Postfix mit DBMail und NUR virtual Maps

Wandersmann mijarena at gmail.com
Mo Okt 22 14:40:51 CEST 2012


Hallo zusammen.

Ich habe ein kleines Problem mit meinem Postfix, weil es entweder nur
Emails empfangen oder senden will, je nach DNS halt.

Ursache des Problems ist, dass ich DBMail benutze und daher natürlich
alle "maps" als Datenbankabfragen vorliegen habe.

Ich benutze dafür "virtual_mailbox_domains" und
"virtual_mailbox_maps". Demzufolge ist da natürlich auch die
localdomain drin, weswegen ich "mydestination" entweder auf 127.0.0.1
oder localhost setze. "local_recipient_maps" gibt es natürlich gar
nicht. (Ja Systemmails, ich weiß, aber das wollte ich erst als
nächstes angehen.)

Soweit so gut, das erste was passierte war, dass er immer bei jedem
Maileingang versucht hat localhost per DNS aufzulösen was natürlich
nicht funktioniert hat.

Daher aktivierte ich "disable_dns_lookups" mit dem Erfolg, dass ich
nun ohne Probleme Mails empfangen konnte.

Allerdings schlug nun das Versenden fehl, genauer gesagt das versenden
an spezielle Mailhoster da er nicht über den MX Record gegangen ist
und ich dann auf den allgemeinen Domainnamen auf PORT 25 nur ein
timeout bekomme. Schalte ich "disable_dns_lookups" wieder aud "no"
geht also wieder das Versenden aber nicht mehr das Empfangen.

Ich hatte gedacht, dass ein Wechsel von "localhost" auf "127.0.0.1"
bei "mydestinations" das problem löst, aber wenn das Ding von "Amavis"
zurückkommt, dann will es wieder über "localhost" und der wird wieder
nicht im DNS gefunden.

Ebenso hatte ich versucht "mydestination" zu ändern, die SQL Abfrage
in den "virtual"-Maps ohne meine lokale Domain zu gestalten und eine
SQL-Abfrage in "local_recipient_maps" reinzusetzen, die nur
Emailadressen meiner Local Domain zurückliefert, aber da beschwerte
sich Postfix über eine MySQL-Map.

Hat jemand eine Idee?

Danke.

Folgend die Dateien:


main.cf:
biff = no
command_directory = /usr/sbin
content_filter=amavis:[127.0.0.1]:10024
daemon_directory = /usr/lib/postfix
data_directory = /var/lib/postfix

disable_dns_lookups = no
#disable_dns_lookups = yes

html_directory = /usr/share/doc/packages/postfix-doc/html
inet_interfaces = all

#local_recipient_maps = mysql:/etc/postfix/sql_recipients_maps.cf

mail_owner = postfix
local_transport = lmtp:[localhost]:24
mailq_path = /usr/bin/mailq
mail_spool_directory = /var/mail
manpage_directory = /usr/share/man
message_size_limit = 0

mydestination = 127.0.0.1
#mydestination = port-sadtec.de

mydomain = port-sadtec.de
myhostname = mail.port-sadtec.de
newaliases_path = /usr/bin/newaliases
program_directory = /usr/lib/postfix
queue_directory = /var/spool/postfix
default_rbl_reply = $rbl_code RBLTRAP: You can`t send us an E-mail today!!!
readme_directory = /usr/share/doc/packages/postfix-doc/README_FILES
# relocated_maps = hash:/etc/postfix/relocated
sample_directory = /usr/share/doc/packages/postfix-doc/samples
sendmail_path = /usr/sbin/sendmail
setgid_group = maildrop
smtpd_banner = $myhostname ESMTP $mail_name (openSUSE)
smtpd_client_restrictions =
                        permit_sasl_authenticated,
                        reject_unknown_client_hostname,
                        reject_unauth_pipelining,
                        permit
smtpd_delay_reject = yes
smtpd_helo_required = yes
smtpd_helo_restrictions =
                        reject_invalid_helo_hostname,
                        reject_unknown_helo_hostname,
                        reject_non_fqdn_helo_hostname,
                        reject_rhsbl_client rhsbl.sorbs.net,
                        reject_rhsbl_sender rhsbl.sorbs.net,
                        permit
smtpd_recipient_restrictions =
                            permit_sasl_authenticated,
                            permit_mynetworks,
                            reject_invalid_hostname,
                            reject_non_fqdn_hostname,
                            reject_non_fqdn_sender,
                            reject_non_fqdn_recipient,
                            reject_unknown_sender_domain,
                            reject_unknown_recipient_domain,
                            reject_unauth_pipelining,
                            reject_unauth_destination,
                            reject_rbl_client zombie.dnsbl.sorbs.net,
                            reject_rbl_client relays.ordb.org,
                            reject_rbl_client sbl.spamhaus.org,
                            reject_rbl_client blackholes.easynet.nl,
                            reject_rbl_client dialup.blacklist.jippg.org,
                            reject_rbl_client cbl.abuseat.org,
                            check_policy_service unix:postgrey/socket,
                            permit
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain = mail.port-sadtec.de
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes
strict_rfc821_envelopes = yes
virtual_mailbox_domains = mysql:/etc/postfix/sql-virtual_mailbox_domains.cf
virtual_mailbox_maps = mysql:/etc/postfix/sql-virtual_mailbox_maps.cf
virtual_transport = lmtp:[localhost]:24


sql_recipients_maps.cf:
user = ***
password = ***
hosts = 127.0.0.1
dbname = dbmail
query = SELECT alias FROM dbmail_aliases WHERE alias='%s' AND ALIAS
LIKE '%port-sadtec.de';


sql-virtual_mailbox_domains.cf:
user = ***
password = ***
hosts    = 127.0.0.1
dbname   = dbmail
query    = SELECT DISTINCT 1 FROM dbmail_aliases WHERE
SUBSTRING_INDEX(alias, '@', -1) = '%s';
# AND alias NOT LIKE '%port-sadtec.de'


sql-virtual_mailbox_maps.cf:
user = ***
password = ***
hosts    = 127.0.0.1
dbname   = dbmail
query    = SELECT DISTINCT 1 FROM dbmail_aliases WHERE alias='%s';
# AND alias NOT LIKE '%port-sadtec.de'


Mehr Informationen über die Mailingliste postfix-users