Postfix soll alle Mails über Relay Host senden

Wäre dieses Thema wert, als Tutorial aufbereitet zu werden?


  • Total voters
    4
  • Poll closed .

jesuspresley

New Member
In einer lokalen OpenXchange-Installation verwenden wir Postfix für die Verwaltung der Mailaccounts. Der eigentliche Mailserver steht bei unserem ISP.

Die Domäne ist beispiel.de
OX Server heisst openxchange.beispiel.de
Relay Host ist relay.beispiel.de und liegt remote beim ISP

Ich möchte nun erreichen, dass Mails von lokalen Benutzern an lokale Benutzer ausschliesslich remote über den Relayhost geschickt werden - Damit die im regulären Posteingang landen.

In meiner main.cf steht (nach einem Versuch, das anzupassen):

Code:
# mydestination = $myhostname,localhost.$mydomain
mydestination = relay.beispiel.de
relayhost = relay.beispiel.de

# enable smtp auth for relaying
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous

mailbox_transport = lmtp:unix:/var/run/cyrus/socket/lmtp

Das ist ein Ansatz, der nicht funktioniert. Ich will aber nicht zuviel herumprobieren. Wo muss ich entsprechend den Versand konfigurieren, damit das funktioniert?

mail.log und andere Config-Werte kann ich nachreichen.

Dieser Fehler wird protokolliert, wenn ich eine Mail an eine existierende Mailadresse versende (der User ist allerdings nicht in OX angelegt, nur auf dem Mailserver):

Code:
Mar 28 15:56:01 openxchange postfix/smtpd[30938]: NOQUEUE: reject: RCPT from localhost[127.0.0.1]: 550 <martin.t@beispiel.de>:
Recipient address rejected: User unknown in local recipient table; from=<martin@beispiel.de> to=<martin.t@beispiel.de> 
proto=ESMTP helo=<openxchange>
 
Last edited by a moderator:
Ja, hab ich getan.
Dennoch derselbe Fehler:

Code:
Mar 31 13:00:33 openxchange postfix/smtpd[6986]: NOQUEUE: reject: RCPT from localhost[127.0.0.1]: 550 <martin.t@beispiel.de>: Recipient address rejected: User unknown in virtual alias table; from=<martin@beispiel.de> to=<martin.t@beispiel.de> proto=ESMTP helo=<openxchange>

Vielleihct wird dieser Schalter an anderer Stelle überschrieben?
Gibt es die Möglichkeit, den lokalen Transport komplett auszuschalten?

Ich habe hier noch Info gefunden:
Postfix Configuration - Address Manipulation

Mail transport switch
Once the address rewriting and resolving daemon has established the destination of a message, it determines the default delivery method for that destination. Postfix distinguishes four major address classes, each with its own default delivery method.

Controlling parameters:
$local_transport,
$virtual_transport,
$relay_transport,
$default_transport

Mir bleibt nichts anderes übrig, als es auszuprobieren....
 
Main.cf

Hier noch die main.cf, habe Domainnamen anonymisiert:
Code:
# See /usr/share/postfix/main.cf.dist for a commented, more complete version


biff = no

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

# TLS parameters
smtpd_tls_cert_file = /etc/ssl/certs/eecert.pem
smtpd_tls_key_file = /etc/ssl/private/eekey.pem
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 = openxchange.beispiel.ox

alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases

relayhost = relay.beispiel.de
mynetworks = 127.0.0.1, 11.11.11.11
mailbox_size_limit = 0
message_size_limit = 31457280

recipient_delimiter = +
inet_interfaces = all

smtpd_sasl_auth_enable = yes
smtp_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes

mailbox_transport = lmtp:unix:/var/run/cyrus/socket/lmtp

virtual_alias_domains = mysql:/etc/postfix/ox_domains.cf
virtual_alias_maps = mysql:/etc/postfix/ox_user_aliases.cf, mysql:/etc/postfix/ox_aliases.cf, mysql:/etc/postfix/ox_resource_aliases.cf, mysql:/etc/postfix/ox_group_aliases.cf

smtpd_sender_restrictions = check_sender_access mysql:/etc/postfix/ox_externaldomaincheck.cf
smtpd_restriction_classes = local_only
local_only = check_recipient_access mysql:/etc/postfix/ox_domains.cf, reject
smtpd_recipient_restrictions = check_sender_access mysql:/etc/postfix/ox_senderrestrictions.cf,   permit_sasl_authenticated,   permit_mynetworks,   reject_unauth_destination

smtpd_banner = $myhostname ESMTP $mail_name (Open-Xchange Express)

procmail_destination_concurrency_limit = 1
procmail_destination_recipient_limit = 1
 
@Marco, @Roger, Vielen Dank.
So scheint es zu klappen:
Ich habe wie vorgeschlagen den local agent in der master.cf auskommentiert, und danach kamen keine Mails über Fetchmail mehr rein.
Code:
# local     unix  -       n       n       -       -       local
Das war es also nicht.

main.cf
Hier habe ich mydestination und zusätzlich die virtual_alias_domains auskommentiert, so dass beispiel.de NUR unter relay_domains eingetragen ist. Sonst würde Postfix verwirrt sein, weil die Domain sowohl lokal als auch Relaydomain wäre.
Code:
# See /usr/share/postfix/main.cf.dist for a commented, more complete version
biff = no
# Uncomment the next line to generate "delayed mail" warnings
#delay_warning_time = 4h
# TLS parameters
smtpd_tls_cert_file = /etc/ssl/certs/eecert.pem
smtpd_tls_key_file = /etc/ssl/private/eekey.pem
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 = openxchange.beispiel.de
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
relayhost = relay.beispiel.de
relay_domains = beispiel.de
mynetworks = 127.0.0.1, 11.11.11.11
mailbox_size_limit = 0
message_size_limit = 31457280
recipient_delimiter = +
inet_interfaces = all
smtpd_sasl_auth_enable = yes
smtp_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes
mailbox_transport = lmtp:unix:/var/run/cyrus/socket/lmtp
# virtual_alias_domains = mysql:/etc/postfix/ox_domains.cf
smtpd_sender_restrictions = check_sender_access mysql:/etc/postfix/ox_externaldomaincheck.cf
smtpd_restriction_classes = local_only
local_only = check_recipient_access mysql:/etc/postfix/ox_domains.cf, reject
smtpd_recipient_restrictions = check_sender_access mysql:/etc/postfix/ox_senderrestrictions.cf,   permit_sasl_authenticated,   permit_mynetworks,   reject_unauth_destination
smtpd_banner = $myhostname ESMTP $mail_name (Open-Xchange Express)
procmail_destination_concurrency_limit = 1
procmail_destination_recipient_limit = 1

Darauf gekommen bin ich, weil in meiner mail.log (normalerweise unter car/logs/mail.log folgende Fehlermeldung stand:
Code:
Mar 31 16:42:15 openxchange postfix/trivial-rewrite[18452]: 
warning: do not list domain beispiel.de 
in BOTH virtual_alias_domains and relay_domains

Fazit: Immer schön ins mail.log gucken, da lernt man was!
 
Last edited by a moderator:
Back
Top