PDA

Bekijk Volledige Versie : Postfix, dubbele mails icm spamd



jeroen2496
04/11/08, 09:52
Beste leden,

Ik heb een mailserver setup met postfix, mysql hier draaien.
Nu heb ik sinds een korte tijd spamd geconfigureerd, en deze werkt goed.

Nu heb ik het probleem dat ik met postfix + mysql mijn mail ook laat doorsturen naar een ander adres, en ook een kopie achter laat.

Maar spamd stuur die kopie denk ik nogmaals naar mijn email box, waardoor de email voor een 2e keer op mijn alias terrecht komt.


Dit is een gedeelte van master.cf, met spamd geactiveerd:



# ================================================== ========================
# service type private unpriv chroot wakeup maxproc command + args
# (yes) (yes) (yes) (never) (100)
# ================================================== ========================
#smtp inet n - n - - smtpd
smtp inet n - n - - smtpd
-o content_filter=spamd:dummy
spamd unix - n n - 10 pipe
flags=Rq user=filter argv=/usr/local/bin/spamchk -f ${sender} -- ${recipient}


Heeft iemand een idee hoe dit op te lossen? Eigenlijk moet locale email gewoon worden genegeerd door spamd, is mijn idee.

jeroen2496
04/11/08, 12:06
Dit zijn overig de belangerijkste regels in de logfile:



Nov 4 12:03:31 srv1 postfix/qmgr[32005]: D3F668670410: from=<email@from.nl>, size=1950, nrcpt=3 (queue active)
Nov 4 12:03:31 srv1 postfix/virtual[32709]: D3F668670410: to=<email@TO.nl>, relay=virtual, delay=2, delays=1.9/0/0/0.09, dsn=2.0.0, status=sent (delivered to maildir)
Nov 4 12:03:31 srv1 postfix/virtual[32709]: D3F668670410: to=<email@ALIAS.nl>, orig_to=<email@TO.nl>, relay=virtual, delay=2.1, delays=1.9/0/0/0.17, dsn=2.0.0, status=sent (delivered to maildir)
Nov 4 12:03:31 srv1 postfix/virtual[32709]: D3F668670410: to=<email@ALIAS.nl>, relay=virtual, delay=2.1, delays=1.9/0/0/0.17, dsn=2.0.0, status=sent (delivered to maildir)
Nov 4 12:03:31 srv1 postfix/qmgr[32005]: D3F668670410: removed




Voorral de laatste regel verteld een heleboel, maar weet iemand waar het fout gaat?

mind
04/11/08, 14:45
Ik heb ooit iets soortgelijks gehad en bij mij was een "maildrop_destination_recipient_limit = 1" in main.cf de oplossing.

bakkerl
04/11/08, 15:54
Ik heb ooit iets soortgelijks gehad en bij mij was een "maildrop_destination_recipient_limit = 1" in main.cf de oplossing.
Dit zal niet veel uithalen omdat maildrop niet gebruik wordt om het in het mailboxje, maar virtual. Dit kun je uit die regels van de log halen.

Ik vermoed dat de alias lookup welke virtual doet in mysql (neem aan dat je de aliassen in mysql heb staan), meer dan 1 resultaat terug krijgt. Zonder de rest van de config is hier weinig over te zeggen.

Kijk dus een naar de query welke vitual doet om de alias(sen) tebepalen.

jeroen2496
04/11/08, 20:20
Dit zal niet veel uithalen omdat maildrop niet gebruik wordt om het in het mailboxje, maar virtual. Dit kun je uit die regels van de log halen.

Ik vermoed dat de alias lookup welke virtual doet in mysql (neem aan dat je de aliassen in mysql heb staan), meer dan 1 resultaat terug krijgt. Zonder de rest van de config is hier weinig over te zeggen.

Kijk dus een naar de query welke vitual doet om de alias(sen) tebepalen.


Correct :) er wordt inderdaad meer dan 1 resultaat gegeven, maar wel 2 verschillende:



query = SELECT username, alias FROM mailbox WHERE username='%s' AND leaveCopy = 'yes' AND active = '1'


Maargoed, dit zou niet het probleem moeten zijn, echter, als ik de 2 username of alias weglaat bij de select, dan werkt het wel correct, maar dan natuurlijk maar naar 1 emailadres....

P.S. maildrop_destination_recipient_limit = 1 werkt idd niet.

bakkerl
04/11/08, 23:26
Correct :) er wordt inderdaad meer dan 1 resultaat gegeven, maar wel 2 verschillende:



query = SELECT username, alias FROM mailbox WHERE username='%s' AND leaveCopy = 'yes' AND active = '1'


Maargoed, dit zou niet het probleem moeten zijn, echter, als ik de 2 username of alias weglaat bij de select, dan werkt het wel correct, maar dan natuurlijk maar naar 1 emailadres....


Voor zover ik weet behoord het sql resultaat 1 waarde per row te hebben. Dus het klopt wel dat je dan 2 mail krijgt. Je moet dus de usernaam in de query weglaten (zoals je zelf al zegt).

Wil je toch dat de mail naar 2 adressen gaat, moet je zorgen dat er op 'WHERE usernaam='%s'' 2 rows terug komen (2 rijen in je tabel dus opnemen).

jeroen2496
05/11/08, 13:22
Ik zal dat eens proberen, wel raar dat het zonder spamd wel werkt...

jeroen2496
05/11/08, 16:26
En helaas! Als ik het volgende doe:

query = SELECT username FROM mailbox WHERE (username='%s' OR source='%s') AND active = '1'

Dan blijf ik hetzelfde probleem houden...

bakkerl
05/11/08, 16:36
En helaas! Als ik het volgende doe:

query = SELECT username FROM mailbox WHERE (username='%s' OR source='%s') AND active = '1'

Dan blijf ik hetzelfde probleem houden...
En hoeveel rows geeft dit resultaat?

jeroen2496
05/11/08, 18:24
En hoeveel rows geeft dit resultaat?


2 stuks. Emails komen allebei aan, maar op de bedoelde alias toch weer 2 maal :bored:

jeroen2496
01/12/08, 14:06
shopje! :) , probleem is er nog steeds..

dupondje
01/12/08, 17:30
Doe es die :dummy weg

jeroen2496
03/12/08, 11:14
Nee, werkt helaas niet :(

jeroen2496
22/01/09, 09:59
Nog maar een keer een schopje omhoog, niemand enig idee?:ohmy:

mind
22/02/09, 13:42
Hallo Jeroen,

ik weet niet of je nog steeds op zoek bent, maar sinds gisteren weet ik waarschijnlijk wat het probleem is. (had er zelf onbewust ook last van)

Het toevoegen van een enable_original_recipient=no zou dit probleem normaal moeten oplossen.

Behalve als je een postfix versie van 2.3-2.3.10 of 2.4.0-2.4.1 gebruikt. Hier zit een bug in de de duplicate detectie om zeep helpt.



20070520

Bugfix (problem introduced Postfix 2.3): when DSN support
was introduced it broke "agressive" recipient duplicate
elimination with "enable_original_recipient = no". File:
cleanup/cleanup_out_recipient.c.


Als je toevallig CentOS gebruik kan ik je aan een gepatchte postfix RPM helpen waarin dit probleem is gefxt. (stuur maar een PM met je mailadres, als je geinteresserd bent)

QBell
22/02/09, 13:53
Is je transport mapping wel goed ingesteld in postfix?

jeroen2496
23/02/09, 09:55
Hallo Jeroen,

ik weet niet of je nog steeds op zoek bent, maar sinds gisteren weet ik waarschijnlijk wat het probleem is. (had er zelf onbewust ook last van)

Het toevoegen van een enable_original_recipient=no zou dit probleem normaal moeten oplossen.

Behalve als je een postfix versie van 2.3-2.3.10 of 2.4.0-2.4.1 gebruikt. Hier zit een bug in de de duplicate detectie om zeep helpt.



Als je toevallig CentOS gebruik kan ik je aan een gepatchte postfix RPM helpen waarin dit probleem is gefxt. (stuur maar een PM met je mailadres, als je geinteresserd bent)



Opgelost! :D
enable_original_recipient=no was de oplossing :thumbup: