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?
>


Reply via email to