Postfix、virtual mail with MySQL(テスト用)失敗中
今作ってるアプリがメールを使うのでそのテスト用に
ローカルにPostfixとDovecotをインすーるしてメールの環境を整える作戦。
MySQLとかを使う必要はないけど面白そうなのでやってみる。
$ sudo su - # apt-get install # vi /etc/postfix/main.cf //virutal_mail_box_mapsを定義する //postfixはchrootするのでproxymap経由じゃないとmysqlに接続できない virtual_mailbox_maps = proxy:mysql:/etc/postfix/virtual_mailbox.cf virtual_uid_maps = proxy:mysql:/etc/postfix/virtual_uid_maps.cf virtual_gid_maps = proxy:mysql:/etc/postfix/virtual_gid_maps.cf # vi /etc/postfix/virtual_mailbox.cf //MySQLの設定を定義する hosts = localhost user = postfix password = password dbname = postfix table = accounts select_field = maildir where_field = address # vi /etc/postfix/virtual_uid_maps.cf hosts = localhost user = postfix password = password dbname = postfix table = accounts select_field = uid where_field = address # vi /etc/postfix/virtual_gid_maps.cf hosts = localhost user = postfix password = password dbname = postfix table = accounts select_field = gid where_field = address //MySQLにデータベースとテーブルを作る # mysql mysql> create database postfix; Query OK, 1 row affected (0.00 sec) mysql> GRANT ALL ON postfix.* TO postix@localhost IDENTIFIED BY 'password'; Query OK, 0 rows affected (0.00 sec) mysql> use postfix Database changed mysql> create table accounts( -> id INTEGER NOT NULL AUTO_INCREMENT, -> uid INTEGER NOT NULL DEFAULT '3000', -> gid INTEGER NOT NULL DEFAULT '3000', -> password VARCHAR(255) NOT NULL, -> address VARCHAR(255) NOT NULL, -> maildir VARCHAR(255) NOT NULL, -> PRIMARY KEY (id) -> ); Query OK, 0 rows affected (1.16 sec) mysql> INSERT INTO accounts(password, address, maildir)VALUES('password', 'noman@test.localhost', '/var/mail/maildir/noman/'); Query OK, 1 row affected (0.01 sec) mysql> SELECT * FROM accounts \G; *************************** 1. row *************************** id: 1 uid: 3000 gid: 3000 password: password address: noman@test.localhost maildir: /var/mail/maildir/noman/ 1 row in set (0.00 sec) ERROR: No query specified mysql> exit Bye # mkdir -p /var/mail/maildir/noman # chown 3000:3000 /var/mail/maildir/noman/ # /etc/init.d/postfix restart
chroot環境だと /usr/lib/postfix/dict_mysql.so が読めないので上手く動かない <- いまここ