[Postfixbuch-users] Sympa mit Postfix, Problem mit regexp und "User unknown in local recipient table"

Oskar Eyb oskar-postfix at eyb.de
So Jan 6 09:44:01 CET 2008



Sandy Drobic schrieb am 06.01.2008 01:00:

>> Wenn ich allerdings vom lists-host selbst, 172.16.0.1 aus per
>> echo To: liste at lists.eyb.de | /usr/local/sbin/sendmail -f oskar at eyb.de 
>> -t liste at lists.eyb.de
> 
> Das ist Einlieferung über die Kommandozeile, wo es keine Überprüfung auf 
> gültige Empfänger gibt. Alles smtpd_*_restrictions können nur greifen, 
> wenn auch SMTP als Protokoll verwendet wird.

OK, das leuchtet ein!

Aber bei der Einlieferung über SMTP scheint es den Empfänger 
liste at lists.eyb.de zu geben, die Mail wird korrekt an Sympa übergeben 
und Sympa startet die Verteilung der Mail an die eingetragenen Empfänger.


Aktuelles Setup:


alias_maps = hash:/etc/postfix/aliases
command_directory = /usr/local/sbin
config_directory = /usr/local/etc/postfix
daemon_directory = /usr/local/libexec/postfix
debug_peer_level = 2
html_directory = no
mail_owner = postfix
mailq_path = /usr/local/bin/mailq
manpage_directory = /usr/local/man
myhostname = lists.eyb.de
mynetworks_style = host
newaliases_path = /usr/local/bin/newaliases
queue_directory = /var/spool/postfix
readme_directory = no
recipient_delimiter = +
relay_domains =
relayhost = 172.16.0.2
sample_directory = /usr/local/etc/postfix
sendmail_path = /usr/local/sbin/sendmail
setgid_group = maildrop
transport_maps = regexp:/etc/postfix/transport_regexp
unknown_local_recipient_reject_code = 550
virtual_alias_maps = hash:/etc/postfix/sympa_virtual



$ cat sympa_virtual  (postmap hash: ...)
sympa at lists.eyb.de lists.eyb.de-sympa
listmaster at lists.eyb.de lists.eyb.de-listmaster
postfixtest at lists.eyb.de lists.eyb.de-postfixtest
postfixtest-request at lists.eyb.de lists.eyb.de-postfixtest-request
postfixtest-editor at lists.eyb.de lists.eyb.de-postfixtest-editor
postfixtest-unsubscribe at lists.eyb.de lists.eyb.de-postfixtest-unsubscribe
postfixtest-owner at lists.eyb.de lists.eyb.de-postfixtest-owner


$ cat sympa_aliases   (postalias ..)
lists.eyb.de-sympa:  "|/usr/local/bin/queue sympa at lists.eyb.de"
lists.eyb.de-listmaster:   "|/usr/local/bin/queue listmaster at lists.eyb.de"
postfixtest: "| /usr/local/bin/queue postfixtest at lists.eyb.de"
postfixtest-request: "| /usr/local/bin/queue 
postfixtest-request at lists.eyb.de"
postfixtest-editor: "| /usr/local/bin/queue postfixtest-editor at lists.eyb.de"
#postfixtest-subscribe: "| /usr/local/bin/queue 
postfixtest-subscribe at lists.eyb.de"
postfixtest-unsubscribe: "| /usr/local/bin/queue 
postfixtest-unsubscribe at lists.eyb.de"
postfixtest-owner: "| /usr/local/bin/bouncequeue postfixtest at lists.eyb.de"


 > Hast du wirklich Relay_domains? Wenn ja, dann setze auch die
 > relay_recipient_maps mit den gültigen Empfängern auf, wenn nicht, dann
 > setze relay_domains leer.
 > relay_domains =


als relay_domains noch auf lists.eyb.de gesetzt war:


Jan  6 09:34:41 beastie postfix/pipe[80835]: 2FAD422842: to=<| 
/usr/local/bin/queue postfixtest at lists.eyb.de>, 
orig_to=<postfixtest at lists.eyb.de>, relay=sympa, delay=1246, 
delays=1246/0.01/0/0.03, dsn=4.3.0, status=deferred (temporary failure. 
Command output: /usr/local/bin/queue: while opening queue file 'T.| 
/usr/local/bin/queue postfixtest at lists.eyb.de.1199608481.80895': No such 
file or directory )
Jan  6 09:34:42 beastie postfix/pipe[80892]: 63B502292D: 
to=<lists.eyb.de-postfixtest at lists.eyb.de>, 
orig_to=<postfixtest at lists.eyb.de>, relay=sympa, delay=12, 
delays=11/0.02/0/1, dsn=2.0.0, status=sent (delivered via sympa service)


mit relay_domains =


Jan  6 09:37:48 beastie postfix/qmgr[86909]: 17B7C228F6: 
from=<oskar at eyb.de>, size=336, nrcpt=1 (queue active)
Jan  6 09:37:49 beastie postfix/pipe[88254]: 17B7C228F6: 
to=<lists.eyb.de-postfixtest at lists.eyb.de>, 
orig_to=<postfixtest at lists.eyb.de>, relay=sympa, delay=12, 
delays=11/0/0/1, dsn=2.0.0, status=sent (delivered via sympa service)


sieht ganz gut aus!
Allerdings reagierte sympa darauf nicht mit distribution o.ä.








>> relayhost = 172.16.0.2
>> sample_directory = /usr/local/etc/postfix
>> sendmail_path = /usr/local/sbin/sendmail
>> setgid_group = maildrop
>> transport_maps = regexp:/etc/postfix/transport_regexp
> 
> Brauchst du wirklich RE in der Transport_map? Üblicherweise werden die 
> Domains statisch geroutet und die Empfänger umgeschrieben, um den 
> Transport zu wählen.
> 
> 
>> $ cat /etc/postfix/virtual_regexp
>> /^(.*)-owner\@lists\.eyb\.de$/    $1+owner at lists.eyb.de
> 
> Wildcards in virtual zerstören die Empfängervalidierung. Sei dir dessen 
> bewusst.

Daran dachte ich auch, es werden also Mails an dlhakdlj at lists.eyb.de 
auch angenommen und dann gibts Backscatter. Will ich nicht!

Das soll ja auch kein Listenserver für 2 Millionen Mailinglisten werden, 
  ein paar manuelle Einträge sind machbar. (bzw über Sympas 
alias_manager.pl sogar automatisch)


>> $ cat /etc/postfix/transport_regexp
>> /^.*+owner\@lists\.eyb\.de$/ sympabounce:
> 
> /\+owner\@lists\.eyb\.de$/ sympabounce:
> 
> Das Plus-Zeichen muss maskiert werden.

ok, nun gibts kein Fehler mehr!



Gruß,
Oskar



Mehr Informationen über die Mailingliste Postfixbuch-users