久しぶりにメールサーバの設定をいろいろやった。
その際にテスト用にメールソフトを設定したが、何やら自動検出の仕組みがあるようだ
調べて見ると、RFC6186により定義されているDNSのSRVレコードにより、IMAP/POP3/SMTPのサーバ名、ポート番号情報を広報することができるらしい。
SRVレコードの定義:RFC2782 A DNS RR for specifying the location of services (DNS SRV)
SRVレコードでメールサーバ定義を配布:RFC6186 Use of SRV Records for Locating Email Submission/Access Services
設定例としてmailcowの「DNS records」にちょうどいい感じのがあったので引用
Example DNS server configuration mail IN A 1.2.3.4 autodiscover IN A 1.2.3.4 autoconfig IN A 1.2.3.4 @ IN MX 10 mail _imap._tcp IN SRV 0 1 143 mail.example.org. _imaps._tcp IN SRV 0 1 993 mail.example.org. _pop3._tcp IN SRV 0 1 110 mail.example.org. _pop3s._tcp IN SRV 0 1 995 mail.example.org. _submission._tcp IN SRV 0 1 587 mail.example.org. _caldavs._tcp IN SRV 0 1 443 dav.example.org. _carddavs._tcp IN SRV 0 1 443 dav.example.org. _autodiscover._tcp IN SRV 0 1 443 autodiscover.example.org. @ IN TXT "v=spf1 mx ~all" default._domainkey IN TXT "v=DKIM1; k=rsa; t=s; s=email; p=..." ; _dmarc IN TXT "v=DMARC1; p=reject; rua=mailto:mailauth-reports@example.org"
「_サービス名.tcp IN SRV 優先度 ウェイト ポート番号 サーバ名」というのが基本書式
優先度は0が最優先。最大は65535。
優先度が同じもののなかで、どちらが使われるかをウェイトで定義。ウェイトは数が大きい方が優先される。こちらも値は0~65535の範囲。
例えば、SSL無しのアクセスを禁止する場合、下記のように禁止するサービスの名前解決を「.」が返るようにする
_imap._tcp IN SRV 0 0 0 . _imaps._tcp IN SRV 0 1 993 mail.example.org. _pop3._tcp IN SRV 0 0 0 . _pop3s._tcp IN SRV 0 1 995 mail.example.org.
IMAPを優先して使わせたい場合は、以下のようになるようだ。
_imap._tcp IN SRV 0 1 143 mail.example.org. _imaps._tcp IN SRV 0 1 993 mail.example.org. _pop3._tcp IN SRV 10 1 110 mail.example.org. _pop3s._tcp IN SRV 10 1 995 mail.example.org.
Outlookの場合は、DNSの_autodiscoverについてのSRVレコード登録から、Webサーバ上にあるxmlファイル内にアクセスして、サーバ設定を読み込むようになっているようだ
「Outlook 2010 におけるユーザー アカウント自動構成の計画」
Exchange互換のSOGoを使う場合の設定は「6.5. Name Service Configuration for Web Services」に記載がある。
このページにSPF/DKIM/DMARCの動作確認「HAD Email Test Tool」が紹介されていたので記載されているメールアドレスに「test」と書いたメールを送ってみた。
・・・30分ぐらい待ってもメールが来ない
「 A reply will be sent with the findings」とあるから、何か見付かったらメールが来るってことで、来ないってことは問題ないということでいいのかな?っと