Google Appsのメールサーバーからのリレーを許可


■メールゲートウェイを立てたい

以前、Google Apps + MailArchivaのエントリを書いたけど、それに関連した話題。メールゲートウェイ(postfix)を立てて、Google Appsからのメールをリレーする(送受信共に)。

受信メールを一旦メールゲートウェイで受けるのは簡単で、MXレコードでゲートウェイサーバーを指定するだけのはず。

送信メールの場合、Google Appsから送信するメールを一旦メールゲートウェイに飛ばす必要がある(Enterprise Editionのみの機能)。その次に、メールゲートウェイでは、

  1. Google Appsのメールサーバーから
  2. 自ドメインから

の両方を満たすメールはリレーを許可するようにすればOKかな。2はいいとして、1は色々考えた。

■Google Appsからのメールのリレーを許可

何かスマートなやり方がないか色々考えたものの思いつかなかったので、方針として

  1. Google AppsのメールアドレスのIPアドレスをSPFレコードから取得
  2. そのリストを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に読ませるだけ。

こんな適当な方法でいいのかな。もっといいやり方がありそうだけど、時間がある時に調べよう。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です