I am (almost ;) ) 100% sure that only mail could be delivered is in ONE mysql db. serwersuse111:~ # cat /etc/postfix/main.cf queue_directory=/var/spool/postfix command_directory=/usr/sbin daemon_directory = /usr/lib/postfix data_directory=/var/lib/postfix mail_owner=postfix
myhostname = suse11.eurimage.pl mydestination = suse11.eurimage.pl, localhost, localhost.localdomain mynetworks = 127.0.0.0/8 virtual_alias_domains = virtual_alias_maps = proxy:mysql:/etc/postfix/mysql-virtual_forwardings.cf, mysql:/etc/postfix/mysql-virtual_email2email.cf virtual_mailbox_domains = proxy:mysql:/etc/postfix/mysql-virtual_domains.cf virtual_mailbox_maps = proxy:mysql:/etc/postfix/mysql-virtual_mailboxes.cf virtual_mailbox_base = /home/vmail virtual_uid_maps = static:5000 virtual_gid_maps = static:5000 #smtpd_sasl_auth_enable = yes #broken_sasl_auth_clients = yes smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, check_client_access hash:/etc/postfix/pop-before-smtp,reject_unauth_destination #smtpd_use_tls = yes #smtpd_tls_cert_file = /etc/postfix/smtpd.cert #smtpd_tls_key_file = /etc/postfix/smtpd.key transport_maps = proxy:mysql:/etc/postfix/mysql-virtual_transports.cf virtual_create_maildirsize = yes virtual_maildir_extended = yes #virtual_mailbox_limit_maps = proxy:mysql:/etc/postfix/mysql-virtual_mailbox_limit_maps.cf #virtual_mailbox_limit_override = yes #virtual_maildir_limit_message = "The user you are trying to reach is over quota." #virtual_overquota_bounce = yes proxy_read_maps = $local_recipient_maps $mydestination $virtual_alias_maps $virtual_alias_domains $virtual_mailbox_maps $virtual_mailbox_domains $relay_recipient_maps $relay_domains $canonical_maps $sender_canonical_maps $recipient_canonical_maps $relocated_maps $transport_maps $mynetworks _forvawrdings.cf points at empty DB _email2email.cf points at DB I use to decide what mails to deliver _domains.cf is DB with domains i want to accept (one column with domain name) _transports.cf empty DB If I send email to adres that does not exist in email2email DB its returned with info about "Delivery to the following recipient failed permanently:". postmap -q works fine for me : return mail when mailactiv =1 and return empty when mailactiv=0 . Why postfix delivers mail that should be rejected ? I tested one more thing : query = SELECT email FROM users WHERE email='%s' AND mail=1 mail is y/n so it should be rejected but while postmap -q shows empty the postfix delivers mails. It looks like it's just ignoring anything with and after 'AND..." Victor Duchovni pisze: > On Fri, Mar 20, 2009 at 10:17:28PM +0100, Sebastian Chociwski wrote: > >> I knew it must be something I am missing but the mails are still delivered. >> MYSQL cut : >> mailactiv int(1) 0 >> mail varchar(1) n >> email2email.cf : >> query = SELECT email FROM users WHERE email='%s' AND mailactiv= 1 >> (checked as well : query = SELECT email FROM users WHERE email='%s' AND >> mailactiv=1) > > Is there any reason to expect that not matching the query should prevent > delivery? The query is an identity mapping for valid users, what purpose > does it serve? Looks neither valid nor invalid users are rewritten, so > the query seems to have no point. You are looking at the problem at > the wrong level. Ask a Postfix question, not an SQL question. > > What Postfix feature are you using to distinguish between valid and > invalid users? >