Postfix で独自ドメインを Gmail に virtual_alias 転送できるようにするまで
動機
格安で拡張メールアドレス (example+hoge@syque.org の +hoge
にあたる部分を無視する) を使えるように、かつメールを Gmail に集約させる方法がないかと考えてのもの。
お金があるなら Google Apps for Work を 月 500 円で契約するか、別に拡張アドレス対応してなくても良いならさくらのメールボックス(月 85 円程度)を契約するのがオススメ。
概要
- 格安の VPS を契約する
- Postfix を入れて、virtual_alias 設定でメールを転送できるようにする
- (Optional) Gmail 側でフィルタ設定、メール送信設定(エイリアス)を行う
詳細
格安の VPS を契約する
日本国内だと DTI が月額 480 円(税込 504 円)と最安。海外まで見ると CloudAtCost が買い切り $35 からがあったりする。自分は後者にした。(ちょうど 90% セールをやっていたのに当たったのもあるので)
スペックは一番下で十分。
OS のセットアップについては割愛。自分は好みで Ubuntu 14.04 LTS 64-bit。
Postfix を入れて、virtual_alias 設定でメールを転送できるようにする
apt-get で postfix いれる。
$ sudo apt-get install postfix
次に virtual_alias でメールを転送できるようにする設定を main.cf に入れる。
細かい説明は面倒なので以下の patch ファイルを当てて。
多分だけど mydomain
, virtual_mailbox_domains
と virtual_alias_maps
の設定があれば十分だと思う。(今回は受信の転送しかしないので)
--- main.cf 2016-07-30 06:03:08.761677988 -0400 +++ main.cf.dti 2016-07-30 06:06:34.153676029 -0400 @@ -5,9 +5,12 @@ # line of that file to be used as the name. The Debian default # is /etc/mailname. #myorigin = /etc/mailname +mydomain = xxxxxxxx.mydomainname.com +myorigin = $mydomain smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu) biff = no +mail_name = unknown # appending .domain is the MUA's job. append_dot_mydomain = no @@ -28,13 +31,26 @@ # information on enabling SSL in the smtp client. smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination -myhostname = ubuntu +myhostname = mail.$mydomain alias_maps = hash:/etc/aliases alias_database = hash:/etc/aliases -myorigin = /etc/mailname -mydestination = xxxxxxxx.mydomainname.com, ubuntu, localhost.localdomain, localhost +# mydestination = localdomain, localhost, localhost.localdomain, localhost +# mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain +mydestination = localhost relayhost = mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 +mailbox_command = procmail -a "$EXTENSION" mailbox_size_limit = 0 +message_size_limit = 52428800 + recipient_delimiter = + inet_interfaces = all + +virtual_mailbox_domains = $myhostname, localhost.$mydomain, localhost, $mydomain +virtual_mailbox_maps = hash:/etc/postfix/virtual-mailbox +virtual_alias_maps = hash:/etc/aliases +virtual_uid_maps = static:10000 +virtual_gid_maps = static:10000 +virtual_mailbox_base = /var/spool/virtual +virtual_mailbox_limit = 52428800
上記を patch したら virtual-mailbox
を postmap
しておく。(これも多分不要)
/etc/aliases
に 転送元のメールアカウント -> 転送先のメールアドレス の記載をする。
# See man 5 aliases for format postmaster: root xxxxxxxx-example: xxxxxxxx-example@gmail.com
終わったら newaliases
を実行。
これでメールを受信できるようになっているはず。10 Minutes mail
など適当な外部アカウントからメール送信テストを行う。
もちろんドメインの DNS 設定で VPS にメールが飛ぶように事前に設定しておくこと。
また 10 Minutes mail とかだと高確率で迷惑メールに振り分けられるのでそっちに入っていないか確かめること。
(Optional) Gmail 側でフィルタ設定、メール送信設定(エイリアス)を行う
Gmail 側で独自ドメインからのメールアドレスかどうかわかるように、独自ドメイン宛だったら〜などの条件でフィルタを作成しておくと見分けやすい。
また独自ドメインから返信できるように、送信設定で独自ドメインのメールアドレスもエイリアスで登録しておく。相手のサーバからエイリアスで怒られるようだったら...その時は素直に gmail.com のアドレスでやりとりするか、別の方法を考える。
未検証の事項
virtual_alias
ではなくalias
でやろうとするとデフォルトでは UNIX ユーザアカウントをメールアカウントとして使おうとするので、メールアカウントが存在せずメールの転送に失敗する?ので virtual_alias にしている
参考
Sun Jul 31 2016 14:38:52 GMT+0900 (JST)
Postfix の拡張メールアドレス - @tmtms のメモ
Sun Jul 31 2016 14:41:17 GMT+0900 (JST)
メールサーバの構築_Postfixの設定 | VPS(仮想専用サーバー)/クラウドなら安心と信頼のWebARENA(ウェブアリーナ) | VPS/クラウドサポート
Sun Jul 31 2016 14:41:48 GMT+0900 (JST)
メールサーバの設定(バーチャルメールボックス編):tech.ckme.co.jp
Sun Jul 31 2016 14:42:15 GMT+0900 (JST)
Postfix インストールメモ(Postfixコマンド) - heihooのITメモ
Sun Jul 31 2016 14:42:32 GMT+0900 (JST)
CentOS Postfixでバーチャルドメイン
Sun Jul 31 2016 14:43:10 GMT+0900 (JST)
CentOS6 サーバー構築/Postfix/Alias - a羅針盤
Sun Jul 31 2016 14:43:21 GMT+0900 (JST)
Postfix 設定パラメータ
Sun Jul 31 2016 14:43:50 GMT+0900 (JST)
Postfix チュートリアル - 基本的な設定
Sun Jul 31 2016 14:44:07 GMT+0900 (JST)
debian - Confused about alias_maps and virtual_alias_maps - Server Fault
Sun Jul 31 2016 14:44:19 GMT+0900 (JST)
Postfix: How do I Make Email Aliases Work? - Server Fault