コメントありがとうございます。 サービス終了した今なら、安く中古が手に入りそ…
postfixで受信したメールをDBに登録された宛先に転送する
転送先をDBに登録する事で、色々都合がいいので試してみた。
まずは、main.cfの設定を変える
$ sudo cp /etc/postfix/main.cf /etc/postfix/main.cf.`date +%Y%m%d` $ sudo vi /etc/postfix/main.cf virtual_alias_domains = mysql:/etc/postfix/virtual_alias_domains.mysql virtual_alias_maps = mysql:/etc/postfix/virtual_alias_maps.mysql
※ファイルパス・ファイル名は適宜変更してください。
次にそれらのファイルにDBの情報を加える
■許可するドメインを格納するDB
sudo vi /etc/postfix/virtual_alias_domains.mysql hosts = localhost user = POSTFIXUSER password = POSTFIXPASSWORD dbname = POSTFIXTABLE query = select name from domains where name = '%s'
■転送設定を格納するDB
hosts = localhost user = POSTFIXUSER password = POSTFIXPASSWORD dbname = POSTFIXTABLE query = select fwdaddr from virtual_maps where name = '%s'
次にデータベースとテーブルを作成します
$ mysql -u USER -p create database POSTFIXTABLE; grant all on POSTFIXTABLE.* to POSTFIXUSER@localhost identified by 'POSTFIXPASSWORD'; use POSTFIXTABLE; create table domains (name varchar(254) not null unique); create table virtual_maps (name varchar(254) not null unique, fwdaddr text not null); insert into domains (name) values ('DOMAIN.COM'); insert into virtual_maps (name, fwdaddr) values ('HOGE@DOMAIN.COM', 'HOGE@GMAIL.COM'); exit;
設定を読み込ませるために再起動します
$ sudo systemctl restart postfix
これで、「HOGE@DOMAIN.COM」宛のメールが「HOGE@GMAIL.COM」に転送されます
maillogで「error: unsupported dictionary type: mysql」と怒られるようでしたら
postfix-mysql をインストールしてください。
sudo dnf install -y postfix-mysql
検索
コメントを残す