2017年1月24日火曜日

AWSのサーバからメールを送信する場合に設定するSPFレコード

AWSでサーバを立ててメールを送信する場合、SPFレコードを設定しないと迷惑メールとしてはじかれてしまう恐れがある。

SPFレコードはDNSサーバにtxtレコードとして追加する。SPFレコードにはIPアドレスまたはドメインを設定し、設定されたIPアドレスもしくは指定したドメインから解決できるIPアドレスがそのドメインから送信許可されたものとして判定される。

基本的な書き方

SPFレコードの基本的な書き方は以下となる。

v=spf1 a ~all

先頭のv=spf1と末尾の~allは基本的に必要で、その間に許可するホスト・ドメインの設定(機構)を半角スペース区切りで追加する。

aはそのドメインに登録されたホスト全てからの送信を許可するという意味になる。
a:example.comのように別のドメインも指定できる。

特定のIPアドレスを許可する場合は以下となる。

v=spf1 ip4:192.168.0.0.1  ~all

IPアドレスはCIDR表記が可能であり範囲が指定できる。ただし、あまり範囲が広いと迷惑メールと判定される恐れがある。

v=spf1 ip4:192.168.0.0/24  ~all

許可する設定(機構)は複数指定可能であり、その場合は以下のようになる。

v=spf1 a:example.com ip4:192.168.0.1 ip4:172.16.0.1 ~all


外部メールサーバの使用

外部のメールサーバを使用する場合はmxを指定する。これは指定されたドメインのmxレコードに設定されたメールサーバを許可する設定になる。ドメインを省略するとそのドメインのmxレコードを許可する。

v=spf1 mx:example.com ~all


また、別ドメインのSPFレコードの設定を参照することもできる。この場合はincludeを指定する。

v=spf1 include:example.com ~all

Amazon SESを使用する場合は以下のように設定する。

v=spf1 include:amazonses.com ~all

設定の確認

設定を確認するには、Windowsの場合はコマンドプロンプトを開いて以下のコマンドを実行する。

nslookup -q=txt example.com

その他、注意事項

  • SPFレコードはドメインに1つしか設定できない。
  • SPFレコードは255文字以下とする。それを超える場合は改行する必要があり注意が必要。
  • 先頭に限定子として"+"(合格)や"-"(失敗)や"~"(弱い否定)を指定できるが、なにも指定しなければ"+"(許可)として判定される。省略しない場合はv=spf1 +a ~allのようになる。

0 件のコメント:

Share