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?

Reply via email to