rihad:
[ Charset ISO-8859-1 unsupported, converting... ]
> rihad wrote:
> > We have two maps:
> > virtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual-maps.cf
> > virtual_maps = mysql:/etc/postfix/mysql-virtual.cf
> >
> >
> > /etc/postfix/mysql-virtual-maps.cf:
> > user = postfix
> > password = c00lpass
> > dbname = mail
> > table = users
> > select_field = maildir
> > where_field = email
> > additional_conditions = and enabled = 1
> > hosts = 127.0.0.1
> >
> > /etc/postfix/mysql-virtual.cf
> > user = postfix
> > password = c00lpass
> > dbname = mail
> > table = alias
> > select_field = goto
> > where_field = address
> > hosts = 127.0.0.1
> >
> >
> > the first table definitely does recipient validation, as well as getting
> > their maildir. The latter table has a few important aliases, like info@,
> > support@, etc going to the real person's email.
> >
> > Which setting should I tweak? I'm lost, the docs are overwhelming for a
> > newb like myself :-(
> >
>
> OK here's how far I've gone:
>
> master.cf:
> smsnotif unix - n n - - pipe
> flags=DRhu user=vmail argv=/root/smsnotif ${recipient}
>
> /root/smsnotif:
> #!/bin/sh
> echo "$@" >> /tmp/smsnotif.log
>
> (and of course chmod +x /root/smsnotif)
>
> main.cf:
> virtual_maps = mysql:/etc/postfix/mysql-virtual.cf
> mysql:/etc/postfix/mysql-virtual-smsnotif.cf
> transport_maps = mysql:/etc/postfix/mysql-transport.cf
>
> /etc/postfix/mysql-virtual.cf:
> user = postfix
> password = blahblah
> dbname = mail
> hosts = 127.0.0.1
> query = select coalesce(goto,email) from users left join alias on
> (email=address) where email='%s'
>
> /etc/postfix/mysql-virtual-smsnotif.cf:
> user = postfix
> password = blahblah
> dbname = mail
> hosts = 127.0.0.1
> query = select replace(coalesce(goto, email), '@', '@sms.') from users
> left join alias on (email=address) where email='%s'
>
> /etc/postfix/mysql-transport.cf:
> user = postfix
> password = blahblah
> dbname = mail
> table = transport
> select_field = transport
> where_field = domain
> hosts = 127.0.0.1
>
> mysql> select * from transport;
> +------------------+-----------+------+
> | domain | transport | desc |
> +------------------+-----------+------+
> | example.com | virtual | NULL |
> | sms.example.com | smsnotif | NULL |
>
>
> so virtual_maps will normally end up as [email protected] +
> [email protected].
>
> Now when I send email with the command "sendmail -v [email protected]"
> the mail _does_ make it into [email protected]'s maildir using
> virtual(8), but the /root/smsnotif isn't even called (the logfile isn't
> created).
>
> What did I forget?
You forgot to test the virtual alias expansion.
postmap -q [email protected] mysql:/etc/postfix/mysql-virtual.cf
Thus should produce the same result as a hash: table with:
[email protected] [email protected], [email protected]
Ditto for the transport map.
Wietse