Problem dublowania się emaili
Autor: Sebastian Juźwiuk
Swego czasu opisywany był na pl.comp.mail.mta (http://tinyurl.com/7eywj) problem "dwojenia" maili na konta w aliasach.
Opis problemu:
Mamy dwa konta user1@domena1 i user2@domena2
Wysyłamy maila na user1@domena1 i chcemy żeby poczta ta trafiała też na user2@domena2.
Poczta normalnie dociera na user1@domena1 w takiej postaci jak trzeba.
Natomiast na skrzynke user2@domena2 docierają dwa prawie identyczne maile.
Roznią się tylko polami X-Original-To i Delivered-To.
W jednym jest
X-Original-To: user1@domena1
Delivered-To: user2@domena2 czyli tak powinno być
a w drugim
X-Original-To: user2@domena2
Delivered-To: user2@domena2
Zaistniała sytuacja dotyczyła systemu w następującej konfiguracji: postfix+mysql+amavisd+clamav+mks_vir+spamassassin.
Oto wycinek pliku main.cf, odpowiedzialny za obsługę domen i kont wirtualnych.
virtual_alias_maps = mysql:/etc/postfix/virtual.mysql
virtual_mailbox_base = /home/mail/virtual
virtual_mailbox_maps = mysql:/etc/postfix/vmailbox.mysql
virtual_minimum_uid = 12345
virtual_uid_maps = static:12345
virtual_gid_maps = static:54321
virtual_alias_domains = $virtual_alias_maps
virtual_mailbox_domains = mysql:/etc/postfix/domain.mysql
Wpisy w tabeli virtual.mysql są w postaci:
user1@domena1 -> user1@domena1, user2@domena2
Próby pomocy ze strony użytkowników grupy nie przyniosły rezultatu.
Rozwiązaniem problemu okazało się dodanie opcji:
-o receive_override_options=no_address_mappings
do pliku master.cf:
127.0.0.1:10025 inet n - n - - smtpd
-o content_filter=
-o local_recipient_maps=
-o relay_recipient_maps=
-o smtpd_restriction_classes=
-o smtpd_client_restrictions=
-o smtpd_helo_restrictions=
-o smtpd_sender_restrictions=
-o smtpd_recipient_restrictions=permit_mynetworks,reject
-o mynetworks=127.0.0.0/8
-o strict_rfc821_envelopes=yes
-o receive_override_options=no_address_mappings
smtp-amavis unix - - n - 2 smtp
-o smtp_data_done_timeout=1200
-o disable_dns_lookups=yes
Linki pomocne w rozwiązaniu problemu:
http://archives.neohapsis.com/archives/postfix/2004-03/3591.html
http://www.postfix.org/FILTER_README.html
przypis Lemata:
w amavisie są zmienne $spam_admin, $virus_admin i podobne. Wartość tych zmiennych nie może być wtedy aliasem (typu postmaster\@$mydomain) - musi to być istniejąca skrzynka - inaczej nie będziemy dostawali tych powiadomień. Można też dać no_address_mappings PRZED amavisem:
smtp inet n - - - - smtpd
-o receive_override_options=no_address_mappings
...
submission inet n - - - - smtpd
-o receive_override_options=no_address_mappings
...
smtps inet n - - - - smtpd
-o receive_override_options=no_address_mappings
...
pamiętając oczywiście, że dajemy tą opcję ALBO przed (jak wyżej) ALBO po amavisie (według artykułu)
Komentarze:
Niby nic ale jak w grupie aliasów masz 200 wiadomości to do amavisa będzie próbowała dobić 200 i amavis każdego przeskanuje ...
Po wklepaniu dodatkowych opcji do main.cf (na pale prawie)na port 587 nie dochodzily maile do aliasowych userow ("unknown user "xxx"").
Wrocilem do strony lemata i doczytalem sie w komentarzach,ze wine moze ponosic zdwojenie opcji no_address_mappings.
Tak tez bylo i aktualnie wszystko dziala :)
Dzieki :D