Postfix virtual_alias_maps

Anonymous

Postfix virtual_alias_maps

Post by Anonymous »

Hi!

Ich habe ein Problem. Vielleicht könnt ihr mir ja helfen.
Ich habe Postfix nach folgender Anleitung installiert http://workaround.org/articles/ispmail-etch
Distribution ist Debian 4.0.
An sich läuft auch alles ganz gut. Ich habe nur das Problem, dass meine virtual_alias_map nicht ausgewertet wird.
Jedesmal wenn eine eMail kommt die eigentlich weitergeleitet werden müsste steht in mail.log:

Code: Select all

Recipient address rejected: User unknown in virtual mailbox table


Hier die main.cf

Code: Select all


# 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)
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

# TLS parameters
smtpd_tls_cert_file = /etc/ssl/certs/postfix.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_use_tls = yes
smtpd_tls_session_cache_database = btree:${queue_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${queue_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.

myhostname = myhostname
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = mydestination
relayhost =
mynetworks = 127.0.0.0/8
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
virtual_mailbox_domains = mysql:/etc/postfix/mysql-virtual-mailbox-domains.cf
virtual_uid_maps = static:5000
virtual_gid_maps = static:5000
virtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual-mailbox-maps.cf
virtual_alias_maps = mysql:/etc/postfix/mysql-virtual-aliases-maps.cf,mysql:/etc/postfix/mysql-email2email.cf
virtual_transport = dovecot
dovecot_destination_recipient_limit = 1
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes
smtpd_recipient_restrictions = permit_mynetworks,permit_sasl_authenticated,reject_unauth_destination
smtpd_tls_cert_file=/etc/ssl/certs/postfix.pem
smtpd_tls_key_file = /etc/ssl/private/postfix.pem
smtpd_use_tls=yes
smtpd_tls_auth_only = yes
content_filter = smtp-amavis:[127.0.0.1]:10024
receive_override_options = no_address_mappings
message_size_limit = 524288000


Die mysql-virtual-aliases-maps.cf sieht so aus:

Code: Select all

user = user
password = password
hosts = 127.0.0.1
dbname = dbname
query = SELECT destination FROM view_aliases WHERE email='%s'


Die mysql-email2email.cf sieht so aus:

Code: Select all

user = user
password = password
hosts = 127.0.0.1
dbname = dbname
query = SELECT email FROM view_users WHERE email='%s


In der Datenenbank steht:

Code: Select all

domain_id: 2 
source: postmaster
destination: user@forwarddomain.com


Vielleicht könnt ihr mir ja helfen
Danke schon mal.
Top

squize
Userprojekt
Userprojekt
Posts: 741
Joined: 2003-05-19 16:46
Location: Karlsruhe

Re: Postfix virtual_alias_maps

Post by squize »

So wie deine Datendankeinträge aussehen, solltest du anstatt '%s' nur den localpart mit '%u' setzen


%s This is replaced by the input key. SQL
quoting is used to make sure that the input
key does not add unexpected metacharacters.

%u When the input key is an address of the form
user@domain, %u is replaced by the SQL
quoted local part of the address. Other-
wise, %u is replaced by the entire search
string. If the localpart is empty, the
query is suppressed and returns no results.

%d When the input key is an address of the form
user@domain, %d is replaced by the SQL
quoted domain part of the address. Other-
wise, the query is suppressed and returns no
results.



Gruss

Marc
Top

User avatar
Joe User
Project Manager
Project Manager
Posts: 11518
Joined: 2003-02-27 01:00
Location: Hamburg

Re: Postfix virtual_alias_maps

Post by Joe User »

Hier lieggt Deine Lösung:

Code: Select all

receive_override_options = no_address_mappings
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.
Top

Anonymous

Re: Postfix virtual_alias_maps

Post by Anonymous »

Hi!

Danke für die Antwort.

Ich habe nun

Code: Select all

receive_override_options = no_address_mappings


auskommentiert.

Nun kann ich z. B. durch einen Tabelleneintrag wie:

Code: Select all

id=1
domain_id=2
source=postmaster
destination=postmaster@forwarddomain.com


Die Adresse postmaster@mydomain.com zu postmaster@forwarddomain.com weiterleiten.
Ich habe aber dann ein Problem mit catchall aliases.

Gebe ich folgendes in 2 Zeilen ein:

Code: Select all

id=2 
domain_id=2
source=@mydomain.com
destination=info@mydomain.com


und

Code: Select all

id=3 
domain_id=2
source=info
destination=info@mydomain.com


Mit der Idee sowohl Mails an info@mydomain.com an info@mydomain.com weiterzuleiten als auch
Mails von allen anderen catchall Adressen kommen zwar die Mails an info@mydomain.com an alles
andere wird jedoch mit dem gleichen Fehler wie oben schon beschrieben abgewiesen.

Vielleicht könnt ihr mir ja hier noch ein mal helfen.

Danke schon mal.
Top