※弊社記事はたぶんにPRが含まれますので
話半分で受け取ってください。

google appsを設定している場合の自サバの設定

 自分でサーバーを運用している人でも、メールサーバ(以下、メルサバ)はgoogle appsにしているという人は多いと思います。ですが、google appsをメルサバにした場合に自分のサーバー(以下、自サバ)のメルサバの設定をどうしたらいいのか、ちょっと迷ったのでメモ。よくよく調べたら、そんな面倒な話ではありませんでした。

 メルサバを外部にしてるなら、自サバの設定をいじる必要なんて無いのでは?
 と思ったら、実際、そうでもなかったりします。たとえば、VPSや自宅・自社サーバなどを使っていると、自サバからのroot宛のメールが結構頻繁に来たりします。また、Wordpressなんぞを運用していると、Wordpressからコメントが付いただのなんだのといろいろ通知のメールが来たりするわけです。
 こういったメールを送信する場合、自サバにもPostfixなどのMTA(Message Transfer Agent;つまり、メールを送信するためのソフト)をインストールして設定する必要が出てきます。

 このとき、たとえば「example.com」ドメインが設定されている自サバが「info@example.com」宛にメールを送信した場合(つまり、自ドメインにメールを配送する場合)、ネット上に良くあるPostfixの設定だとサーバ内部のinfoアカウントにメールが配送されてしまいます。図で表すと以下のような感じ。

メールサーバの関係 その1

この場合、配送されたメールをチェックするには自サバのメールアカウントをチェックする必要があります。これはちょっとめんどくさいので、自ドメイン宛のメールもgoogleのメルサバに配送されるようにしたいところです。図にすると以下のような感じ。

メールサーバの関係 その2

 で、これを実現するにはどうしたらいいのか、調べてみたのですが、案外簡単な方法で実現できました。以下、postfixの場合。

 結論から言うと「mydestination」のリストから「$mydomain」を取り除くだけでした。以下、Postfixのmain.cfの中から抜粋。ただし、googleのメルサバに「example.com」を割り当てている場合の設定です。

myhostname = mail.example.com
mydomain = example.com
myorigin = $myhostname
mydestination = $myhostname, localhost.$mydomain, localhost

 この中で大事なのは「mydestination」のところ。「mydestination」にリストアップされているドメイン宛のメールがこのサーバでキャッチされるようです。なので、「$mydomain」をリストから外せば、送信された「info@example.com」宛のメールが自サバのMTAをスルーしてgoogleのメルサバに渡る、と。仮にサブドメインの「mail.example.com」をスルーさせたい場合は「$myhostname」をリストから外します。

 「myorigin = $myhostname」としているのは、googleのメルサバに割り宛てている「example.com」とかぶらないようにするためです。何でか、という説明をするのはちょっとめんどくさいので、知りたい人は次のことをやってみてください。

# まず、root宛てにメールを出します。
echo test|mail root
# 次にmaillogを開きます。
# たぶんエラーが記録されていると思います。
# つまりそういうことです。
vi /var/log/maillog

 つまりそういうことです。ながなが説明するより実際に見た方が分かるのではないかと。

 なんか間違ってるところがあるかもしれませんが、これでとりあえず動いているのでOKということで。

参考

Postfix実用ガイド

  • メーカー:オライリージャパン
  • カテゴリ:大型本

関連する記事