Google Appsのメールサーバーからのリレーを許可
■メールゲートウェイを立てたい
以前、Google Apps + MailArchivaのエントリを書いたけど、それに関連した話題。メールゲートウェイ(postfix)を立てて、Google Appsからのメールをリレーする(送受信共に)。
受信メールを一旦メールゲートウェイで受けるのは簡単で、MXレコードでゲートウェイサーバーを指定するだけのはず。
送信メールの場合、Google Appsから送信するメールを一旦メールゲートウェイに飛ばす必要がある(Enterprise Editionのみの機能)。その次に、メールゲートウェイでは、
- Google Appsのメールサーバーから
- 自ドメインから
の両方を満たすメールはリレーを許可するようにすればOKかな。2はいいとして、1は色々考えた。
■Google Appsからのメールのリレーを許可
何かスマートなやり方がないか色々考えたものの思いつかなかったので、方針として
- Google AppsのメールアドレスのIPアドレスをSPFレコードから取得
- そのリストをpostmapで使う。
という方向で行く事にした。
まずは、以下のような簡単なスクリプトを作成。
#!/usr/bin/perl while (<>) { if ($_ !~ /^_spf.google.com.*TXTs+"(.*)"/) { next; } @entries = split(/ /, $1); foreach $entry (@entries) { if ($entry =~ /^ip4:(.*)/) { print $1." OKn"; } } }
SPFレコードの結果をそのスクリプトに食わせる。
dig txt _spf.google.com | ./spf2table.pl > cidrmap
あとは出来上がったファイルをpostfixに読ませるだけ。
こんな適当な方法でいいのかな。もっといいやり方がありそうだけど、時間がある時に調べよう。