目次
迷惑メール対策を行う
標準の設定のままですと、迷惑メールとして判定される可能性が高く、せっかく送ったメールがスパムや迷惑メールとして届かなかったり、迷惑メールフォルダに分類されてしまってすぐにみられない可能性があります。
これは、なりすましメール対策のために、送信ドメイン認証がされているか受信側のメールサーバーが確認しているためによるものです。
送信ドメイン認証でメールの信頼性を高めるためには以下の3つの方法があります。
いずれかを導入するのではなく、3つを組み合わせていくことが重要です。ただし、コアサーバーではDKIMに対応していません。
DKIMを設定したい場合は、コアサーバーでメールを設定せず、有料ではGSuite、無料ではZOHO(ゾーホー)といった独自ドメインの利用ができるメールホスティングサービスを使用しましょう。
SPF IPアドレスで判別 | 送信側:送信元のIPアドレスをDNSに「SPFレコード」として事前に登録 受信側:DNSサーバからSPFレコードを受け取り、送信元IPアドレスと照合 |
DKIM 電子署名で判別 | 送信側:送信するメールに電子署名を付与 受信側:DNSサーバから公開鍵を受け取り、電子署名を検証 |
DMARC 認証失敗時の対応策の定義 | 送信側:受信側の認証失敗時の推奨アクションをDNSに「DMARCポリシー」として宣言 受信側:認証失敗時にこのDMARCポリシーを参照して、受信メールをどう扱うか判断 |
SPFの設定
SPFとは「Sender Policy Framework」の略称で、送信元メールサーバのIPアドレスとDNSサーバーが保管しているSPFレコードとを比較してなりすましかどうかを判別します。
コアサーバーではドメインのDNS設定をした際に、デフォルトではIPアドレスでSPFが記述されていますので、特に設定をする必要はありません。
もし、IPアドレスに加えてドメイン名でも設定したい場合、下記のように設定してください。
txt @ v=spf1 a include:ドメイン名 -all

SPFが正しく設定されているかについては、kittermanのSPF Record Testing Toolsで確認することできます。
ドメイン名を入力して、「Get SPF Record(if any)」をクリックしてSPFについて分析します。

構文エラーなどなく成功した場合、以下のように表示されます。

失敗した場合、以下のように表示されます。

DKIMの設定
DKIMとは「DomainKeys Identified Mail」の略称で、送信メールの電子署名にDNSサーバーの公開鍵を利用して、なりすましかどうかを検証します。
現状、コアサーバーでは、DKIMのDNSレコードは対応していますが、DKIM認証の電子署名発行には対応していないようです。そのため、設定はできません。
下記では、DNSレコードの登録方法について解説していきます。
(レコードだけ対応しても送信ドメイン認証には関係ありません)
たとえば OpenDKIM では、opendkim-genkey というツールが提供されており、DKIM の署名に必要な秘密鍵と公開鍵を作成できます。
今回は、SocketLabsのDKIM Generatorを使用します。
Domainにメールアドレスに使用するドメイン名、Key Selectorに”dkim”を入力し「Generate」をクリックします。

Step 2のコードをコピーして、Value-DomainのDNS設定に以下のコード形式で追加して、保存します。

txt dkim._domainkey.ドメイン名 コピーしたDNSレコード(ダブルクォーテーションは外す)

DNSレコードに設定されているかどうかは、dmarcianのDKIM Record Checkerを使用して、確認しましょう。
ドメインとセレクタを入力して、「Inspect DKIM」のボタンをクリックします。
Enter domain:ドメイン名
Enter selector:dkim

「Congratulations!」と出れば設定はできています。

DMARCの設定
DMARCとは「Domain-based Message Authentication、Reporting and Conformance」の略称で、SPFやDKIMの認証が失敗した場合の対応策を定めたものになります。
送信側は受信側の認証失敗時の推奨アクションをDNSサーバーに「DMARCポリシー」として宣言しておき、受信側は認証失敗時にこのDMARCポリシーを参照して、「受け取る」「隔離」「拒否」「何もしない」といった定義から受信メールをどう扱うか判断します。
DNS設定に下記を記述します。
レポートが大量に送られてくる可能性があるので、メールアドレスのユーザ名は”dmarc-reports”などDMARCレポート専用のメールアドレスを用意しておくのが良いでしょう。
txt _dmarc.(ドメイン名) v=DMARC1; p=none; rua=mailto:(ユーザ名)@(ドメイン名)

タグ | 必須/ 省略可 | 説明と値 |
v | 必須 | DMARC のバージョン。通常、DMARC1 を指定します。 |
p | 必須 | 認証できないメールの処理方法を受信メールサーバーに指示します。 none: メールをそのまま受信者に配信して、日次レポートに記録します。レポートは、レコード内の rua オプションで指定されたメールアドレスに送信されます。 quarantine: メールを迷惑メールに分類して、受信者の迷惑メールフォルダに送信します。受信者は迷惑メールを確認し、正当なメールを特定することができます。 reject: メールを排除します。レポートは、レコード内の rua オプションで指定されたメールアドレスに送信されます。 |
rua | 省略可 | ドメインの DMARC アクティビティに関するレポートを受け取るメールアドレス。 メールアドレスの先頭には mailto: を付ける必要があります(例: mailto:dmarc-reports@example.com )。レポートを複数のメールアドレスに送信するには、各メールアドレスをカンマで区切ります。 このオプションを使用すると、大量のレポートメールが送信される可能性があるため、自分のメールアドレスを使うことはおすすめしません。代わりに、専用のメールボックス、グループ、DMARC レポートに特化したサードパーティ サービスの使用を検討してください。 |
正しく設定できているかどうかについては、dmarcianのDMARC Record Checkerで確認することができます。
ドメインを入力して、「Inspect the domain」のボタンをクリックします。
Enter domain:ドメイン名

成功した場合は、以下のように表示されます。

失敗した場合は以下のように表示されます。

スパムスコアを確認しよう
迷惑メール度判定サービスで、メールアドレスがスパムとして判定されるレベルを確認しましょう。
1日3回まで無料で使用できます。
mail testerを開きます。

表示されたメールアドレスをコピーして、判定したいメールアドレスからコピーしたメールアドレスに対してテストメール(内容や本文入り)を送信します。
送信が完了したら「Then Check your score」をクリックします。
そうすると、スコア結果が表示されます。

コアサーバーで作成したメールアドレスでは、送信ドメイン認証のDKIMがないため1点引かれて、テストメールの内容で0.1点で8.9点でした。DMARCは認証失敗時の対応策を宣言しているだけなので、DMARCの有無はスコアに影響しないようです。
ビジネスで使用するメールアドレスは、スパムと判定されないように10点を目指すようにしましょう。