Warum Relay access denied ?

Alex JOST jost+lists at dimejo.at
Mo Nov 23 22:25:42 CET 2015


Am 23.11.2015 um 21:29 schrieb Matthias Doering:
> Wenn Ich die Abfragen mache bekomme Ich immer folgende Ergebnisse:
>
> sudo postmap -q test at codegeeks.de
> mysql:/etc/postfix/mysql_virtual_domains_maps.cf
> sudo postmap -q codegeeks.de
> mysql:/etc/postfix/mysql_virtual_domains_maps.cf
> codegeeks.de
>
> sudo postmap -q test at codegeeks.de
> mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf
> test at codegeeks.de
> sudo postmap -q lukas at codegeeks.de
> mysql:/etc/postfix/mysql_virtual_alias_maps.cf
> lukas at codegeeks.de

Ich bin die Beiträge bis jetzt nur überflogen, deshalb bitte um 
Verzeihung falls ich wichtige Informationen übersehen habe.

1) Soweit ich gesehen habe soll Postfix ausschließlich (oder 
hauptsächlich?) an Deinen lokalen Dovecot zustellen. Es reicht dafür 
folgender Eintrag in der main.cf:
relay_transport = lmtp:172.20.19.14:24

2) Für die Abfrage der Domains ist folgender Eintrag. Wenn bei allen 
Domains in der Spalte "transport" der selbe Wert steht reicht natürlich 
auch nur eine der beiden Abfragen.
relay_domains = proxy:mysql:${sql_dir}/mysql_virtual_domains_maps.cf,
	proxy:mysql:${sql_dir}/mysql_relay_domains_maps.cf

3) Dovecot kennt keine Aliase, nur finale Empfänger. Wenn Du eine E-Mail 
für einen Alias empfängst musst Du die Adresse also in Postfix 
umschreiben, bevor Du die E-Mail an Dovecot übergeben kannst.
virtual_alias_maps = proxy:mysql:${sql_dir}/mysql_virtual_alias_maps.cf,
     proxy:mysql:${sql_dir}/mysql_virtual_alias_domain_maps.cf,
     proxy:mysql:${sql_dir}/mysql_virtual_alias_domain_catchall_maps.cf


=> mysql_virtual_domains_maps.cf
	query = SELECT domain FROM domain WHERE \
	domain = '%s' AND transport = 'virtual' AND active = '1'

=> mysql_relay_domains_maps.cf
	query = SELECT domain FROM domain WHERE \
	domain = '%s' AND transport = 'relay' AND active = '1'

=> mysql_virtual_alias_maps.cf
	query = SELECT goto FROM alias WHERE address='%s' \
	AND active = '1'

=> mysql_virtual_alias_domain_maps.cf
	query = SELECT goto FROM alias,alias_domain \
	WHERE alias_domain.alias_domain = '%d' and \
	alias.address = CONCAT('%u', '@', alias_domain.target_domain) \
	AND alias.active = 1 AND alias_domain.active='1'

=> mysql_virtual_alias_domain_catchall_maps.cf
	SELECT goto FROM alias,alias_domain WHERE \
	alias_domain.alias_domain = '%d' and \
	alias.address = CONCAT('@', alias_domain.target_domain) \
	AND alias.active = 1 AND alias_domain.active='1'


Soweit ein "einfaches" Setup. Optional kann man Postfix jetzt noch 
beibringen bestimmte Domains an externe Server zu liefern.

-- 
Alex JOST



Mehr Informationen über die Mailingliste Postfixbuch-users