最近のメーラーはメールアドレス(≒アカウント名)とパスワードを入れるだけで、メールサーバの設定は内部で自動で行ってくれたりするようになったりもしてるのですが、あれの設定どうやるんだろうって去年くらいに調べてました。
もっとも、Google Appsなんかの場合は最近の製品の場合、アカウント設定時にGmailアカウントとして選択することでそのまま設定出来たりするので必要なかったりもするのですが……。
もちろんこれはGoogle Appsなどの製品以外でもこれは応用出来るので、自前のサーバーで他者にアカウント提供する場合でも便利になります。
さて本題ですが、これを実現するには Autodiscover というMicrosoftがMicrosoft Exchangeで実現するために作った規格を使うみたいです。
https://technet.microsoft.com/ja-jp/library/bb124251(v=exchg.150).aspx
設定についてはとても簡単で、HTTPS接続出来る場所に、XMLで記述された設定ファイルを特定のパスに配置するだけです。
設置する設定ファイルは下記のように記述します。
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?xml version="1.0" encoding="utf-8"?> | |
<Autodiscover xmlns="http://schemas.microsoft.com/exchange/autodiscover/responseschema/2006"> | |
<Response xmlns="http://schemas.microsoft.com/exchange/autodiscover/outlook/responseschema/2006a"> | |
<Account> | |
<AccountType>email</AccountType> | |
<Action>settings</Action> | |
<Protocol> | |
<Type>IMAP</Type> | |
<Server>imap.gmail.com</Server> | |
<Port>993</Port> | |
<DomainRequired>on</DomainRequired> | |
<SPA>off</SPA> | |
<SSL>on</SSL> | |
<AuthRequired>on</AuthRequired> | |
</Protocol> | |
<Protocol> | |
<Type>POP3</Type> | |
<Server>pop.gmail.com</Server> | |
<Port>995</Port> | |
<DomainRequired>on</DomainRequired> | |
<SPA>off</SPA> | |
<SSL>on</SSL> | |
<AuthRequired>on</AuthRequired> | |
</Protocol> | |
<Protocol> | |
<Type>SMTP</Type> | |
<Server>smtp.gmail.com</Server> | |
<Port>465</Port> | |
<DomainRequired>on</DomainRequired> | |
<SPA>off</SPA> | |
<SSL>on</SSL> | |
<AuthRequired>on</AuthRequired> | |
<UsePOPAuth>on</UsePOPAuth> | |
<SMTPLast>off</SMTPLast> | |
</Protocol> | |
</Account> | |
</Response> | |
</Autodiscover> |
Google Appsを使っている場合はこれをコピーして autodiscover.xml という名前で保存すればOKです。
このファイルを、メールで利用するドメイン名を利用したURLに設置する必要があります。
例えば、 your-name@mail.example.net というアカウントのメールを発行するのであれば、 https://mail.example.net/autodiscover/autodiscover.xml というURLでアクセス出来るようにする必要があります。
もしくは、 https://autodiscover.mail.example.net/autodiscover/autodiscover.xml というように、autodiscover. というサブドメインを設定し、その下に配置すると言うことも可能です。
後者については、例えば your-name@example.com というメールアドレスを利用していて、 https://example.com はサービス用URLであり、ドキュメントルート以降のパスは全てサービスURLとして自由に生成可能な状態としていた場合、 https://example.com/autodiscover というネーム空間を汚染してしまうため、そのような状態を回避することができるようになります。
既に例に挙げているとおり、これらの設定には基本的にはhttpsでアクセス出来るようにする必要がありますので、各自でメールドメイン毎にSSL証明書を用意する必要があります。
(SSL環境をどうしても用意出来ない場合は http://autodiscover.<メールドメイン>/autodiscover/autodiscover.xml のURLでも可能なようです)
StartSSLで1年間無償で使えるSSL証明書を取得するのもいいですし、DNSにCloud Flareを使っている場合、HTTPリクエスト時にCloud Flareを通過する設定にしていればSSL機能を無償で提供してくれますので、それで代替も出来ます。
また、最近はLet's EncryptプロジェクトでSSL証明書を無償で発行することも可能ですので、それらを利用してみるのもいいでしょう。
今回はGoogle Appsの設定をするものとして記述しましたが、冒頭でも触れていたとおり、autodiscoverは自前のサーバ設定にも有効です。 autodiscover.xml の<Protocol>内の各項目をそれぞれの環境に添った設定にしておけば
それが反映されます。
また、DNSのSRVレコードを設定出来る環境の場合、ゾーンファイルに下記の様にSRVレコードを設定することで、その設定を検出させることも可能なようです。
1 2 3 4 | _imap._tcp 300 IN SRV 0 1 993 imap.gmail.com. _pop._tcp 300 IN SRV 0 1 995 pop.gmail.com. _smtp._tcp 300 IN SRV 0 1 465 smtp.gmail.com. ;;_autodiscover._tcp 300 IN SRV 0 0 443 autodiscover.example.com. |