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 u...@example.com +
u...@sms.example.com.
Now when I send email with the command "sendmail -v u...@example.com"
the mail _does_ make it into u...@example.com's maildir using
virtual(8), but the /root/smsnotif isn't even called (the logfile isn't
created).
What did I forget?