自分はVPS上にメールサーバをたててドメイン向けのメールをそこで受信し、gmailに/etc/aliasesで転送して読んでいた。ほとんどがspamだしメールを送信することもあまり無いので、概ねgmailのアカウントを使ってはいる。
ところが最近、メールサーバからgmailへの配信が止まっているような気がしたので調べてみると、
SMTP error from remote mail server after end of data:
host gmail-smtp-in.l.google.com [1.2.3.4]:
550-5.7.1 [5.6.7.8 9] Our system has detected that this message is
550-5.7.1 likely unsolicited mail. To reduce the amount of spam sent to Gmail,
550-5.7.1 this message has been blocked. Please visit
550 5.7.1 https://support.google.com/mail/answer/188131 for more information. g133si15525314iog.156 - gsmtp
ってな感じのようだ。きっかけはたぶんdebianを 6.x -> 7.xへ dist-upgrade したときにメールサーバをpostfixからexim4に変えたときだろうか。スマートホストでgmailに転送していたのをたぶんやらなかったのだと思う。どうせなら安全にメール送信できるようなサーバにしておきたいし、スマートホストを設定して配信すればうまくいけるのだけど、調べていくとSPFを設定すれば回避できるようである。
ちなみになぜ dist-upgradeしたかというと、WordPressのアップデートをしたらダッシュボードに入れなくなった せいである。さて、SPFだが、もともとはexim4で認証時のみメール送信できるようにしようとしていてSPFの設定が必要という情報にたどり着いたもので、シンプルな物では以下のような記事をみつけた。
評判のさくらのVPSでSMTP(Sendmail)を公開する時にやっておきたいこと
SPF(Sender Policy Framework) : 迷惑メール対策委員会
ちなみにこのサーバも「さくらのVPS」を使ってる。でも
ドメインの管理自体は自前でやっている。設定するのはDNSのレコードのようなので、DNSに以下を書き足す。
TXT v=spf1 mx ip4:11.22.33.44 -all
こうしておくことで、自分の使っているドメインの送り主はこのIPアドレスからだけなので受信しないで、と宣言していることになる。ip6もアドレスも書けるようだが、書くとpassしなかったので、とりあえずip4だけ書いた。ちなみに sudo apt-get install spf-tools-perl
で、spf-toolsをいれておくと、以下の様に確認できる。
$ spfquery.mail-spf-perl --ip-address 11.22.33.44 --mfrom check@loopsketch.com
ass
loopsketch.com: 11.22.33.44 is authorized to use 'check@loopsketch.com' in 'mfrom' identity (mechanism 'mx' matched)
loopsketch.com: 11.22.33.44 is authorized to use 'check@loopsketch.com' in 'mfrom' identity (mechanism 'mx' matched)
Received-SPF: pass (loopsketch.com: 11.22.33.44 is authorized to use 'check@loopsketch.com' in 'mfrom' identity (mechanism 'mx' matched)) receiver=dev.loopsketch.com; identity=mailfrom; envelope-from="check@loopsketch.com"; client-ip=11.22.33.44
その後、携帯アドレスやgmail宛てにメールを送信してみるとうまく受信してくれた。ちなみに、exim4自体もメール送信のための設定を結構直す必要があったが、それは別途記事を書くことにする。踏み台にされてしまいブラックリストに挙がってしまうなどrejectされてしまう理由は他にもあるかもしれないが、SPFも最近のメールサーバの最低限の設定としては必要のようである。
コメント