Unless your transports or restrictions prevent it, ALL mail processed by your postfix server will get run through dspam - including the outbound mail - which I believe is your current condition. Your mail server is not accepting mail for AOL, for example. It is PROCESSING mail destined for an external domain - and running that mail through dspam. The recipient check I gave you will only run dspam if the destination - regardless of the source - is your domain. That's why it gets listed prior to any of the other "permit" options - they allow the outbound mail to non-local domains.

Further discussion on this should be on the Postfix list I think - it's off topic for dspam.

--
Daniel


Derrick Shields wrote:
Thanks Daniel. I will look into the check_recipient_access option. Regarding your comment:

or configure Postfix to only run your valid users through
dspam (which is the correct method).

I thought this was how I had it set up - at least this is how I meant it to be set up. Are you able to determine from my configs whether this is what I curently have configured. The intention is that postifix will look at the mysql domain / users table from posfixadmin and only allow the domains / user configured there. Those tables only contain valid users/domains. Thanks.

----- Original Message ----- From: "Daniel L. Miller" <[EMAIL PROTECTED]>
To: <[email protected]>
Sent: Sunday, April 22, 2007 5:26 PM
Subject: Re: [dspam-users] Non-local virtual users and performance


Derrick Shields wrote:
I have dspam configured with postfix, cyrus, mysql and amavisd/clamav on FC4 using virtual domains and postfixadmin. This has been running for almost 2 years without any problems. Recently though dspam is hanging due to what appears to be mysql performance issues. Looking at the dspam tables, I'm seeing a lot of usernames in the dspam_virtual_uids which aren't valid users - many aren't even valid domains. Checking the /var/dspam folder, I see the same non-local entries all over the place for <user>.stats and <user>.log files. The only .mbox files in that folder are for actual users, so it seems that dspam is only quarantining for valid accounts. My question is whether dpsam is suppose to be tracking stats and virtual uids for non-local users. I wonder if these additional uids are causing some performance issues. My current dspam_virtual_uids table is showing 3587 users, with only about 50 of these valid. My dspam_token_data table is showing about 2.5 million records and I have a cron script which purges old records from that table. I just did a mysql OPTIMIZE TABLE and will see what happens.

Any ideas about all the non-local virtual users? Any ideas about the sudden mysql performance drop? Any suggestions for debugging what dspam is doing to determine the exact nature of the hanging?
While I admit I ddin't parse your config that closely, this is typically the result of running "everything" through dspam. Because your dspam config specifies opt-out, dspam will by default process everything you run through it. If it was working before, and now broke, either you hit a magical maximum of mysql - or you changed/upgraded your Postfix and/or dspam and something's different now. Either switch dspam to opt-in and create the opt-in files for all your users (this is the less recommended option) - or configure Postfix to only run your valid users through dspam (which is the correct method).

Your smtpd_recipient_restrictions are listed in the wrong order (list your blocks first unless you have good reason otherwise). Spend some time on the Postfix website reading the docs - but here's a quicky:

In main.cf:
smtpd_recipient_restrictions =
   reject_non_fqdn_sender, reject_non_fqdn_recipient,
   reject_unauth_destination,
   reject_unauth_pipelining,
   reject_invalid_hostname,
   reject_rbl_client relays.ordb.org,
   reject_rbl_client opm.blitzed.org,
   reject_rbl_client list.dsbl.org,
   reject_rbl_client bl.spamcop.net,
   reject_rbl_client sbl-xbl.spamhaus.org,
check_recipient_access hash:/etc/postfix/maps/recipient_access, // magic line
   permit_mynetworks,      // shouldn't need this line - try removing it
   permit_sasl_authenticated

/etc/postfix/maps/recipient_access:
<yourdomain.com>    FILTER lmtp:unix:/var/dspam/dspam.sock

with the check_recipient_access filter map, only recipients matching your domain will be passed to dspam.

--
Daniel

Reply via email to