著者: Ben Bucksch
著者へ相談せずに文書の内容を変更しないで下さい
Thunderbird 3.1 以降から追加された自動設定機能の一つに,アカウントの情報を自動で設定する機能があります(一部の機能は 3.0 から利用できます).この機能は,ユーザがメールサーバの通信設定をとても簡単に設定できるようにする,という目的のもと開発されました.これにより,Thunderbird をダウンロードしてインストールを行ない,アカウントのセットアップウィザードから本名と Email アドレス,そしてパスワードを入力するだけで,できる限り安全にメールを送受信することができるようになります.
参考:
- Mozilla wiki におけるプロジェクトのページ には背景,デザイン,実装をはじめとした自動設定機能の詳しい説明が存在します.
- ユーザ向けの利用方法については Thunderbird Knowledge Base のAutomatic Account Configuration を参照して下さい.
- 設定ファイルの 説明 と 定義 に関するページも存在します.
この文書は,いかにして自動設定機能が動作するか,そして何を行えばメールサーバが自動で設定機能されるか,について説明を行ないます.
メカニズム
Thunderbird は様々なユースケースにあわせ,色々な方法でサーバの情報を取得します:
- ISPDB
IPSDB は Mozilla Messaging によって管理されているデータベースで,誰でもその中にある情報を利用することができます.現在は非常に大規模な ISP 向けの設定を中心に保持していますが,早く全ユーザの 50 % 程度をカバーできるぐらいの情報を提供したいと考えています.
この ISPDB は,マイクロソフトなどの巨大な ISP が,後述する Mozilla 用の情報をすぐに提供してくれるとは考えられなかったために用意されました. - ISP での設定ファイルサーバ
ISP は autoconfig.<domain> というドメインで設定情報提供サーバを用意することができます.このサーバは,ユーザからのリクエストを受け付けると,静的な XML 形式(詳細は後述します)で設定ファイルを返却します.ユーザのメールアドレスにサーバへのログイン名が含まれないなど複雑な場合には,(内部でメールアドレスからのログイン名ルックアップなどを行ない)XML ファイルを動的に生成する必要があります.このような場合には,この設定ファイルサーバを用意する方式が,自動設定機能用の情報を提供するための唯一の方法となります. - ディスク上の設定ファイル
管理者が Thunderbird のインストールディレクトリに設定ファイルを配置するという方法も存在します. この方法は,企業が社員の PC へ Thunderbird を導入する際,設定ファイル用のサーバを用意せずに自動設定を行えるようにする,というユースケースを想定して用意されました.そのため,それ以外の場面ではこの方法はあまり実用的ではありません.というのも,設定ファイルを一度配置してしまうと,その後で更新を行なうことが難しいためです.よって,公共の ISP は設定ファイルサーバを準備する必要があるでしょう. - 推測
上で述べた方式が全て失敗した場合,Thunderbird はサーバの設定を推測します.imap.<domain>, smtp.<domain>, mail.<domain> のように,一般的なサーバの名前を試し,サーバから応答があったら,そのサーバが SSL や STARTTLS, そして暗号化パスワード (CRAM-MD5) をサポートするかをチェックします. - 手動設定
推測にも失敗してしまった場合は,ユーザに手動で設定を行なってもらう必要があります.また,上記の自動取得によってうまく情報が設定された場合にも,ユーザはあとからその情報を修正することができます.
全てのルックアップ (lookup) メカニズムは「Email アドレスのドメイン部分」をベースとして使います.例えばメールアドレスが [email protected] であったときルックアップは次のような順番で行われます:
- PC 内から Thunderbird のインストール先/isp/example.com.xml を探す
- autoconfig.example.com をチェック
- "example.com" を ISPDB 中から探す
- DNS から"MX example.com" を探し, mx1.mail.hoster.com 向けに ISPDB 中から "hoster.com" を探す
- それでも駄目なら imap.example.com, smtp.example.com などを試す(推測)
将来的には DNS SRV もサポートする予定です.
自動設定機能をサポートする方法
分類
ユーザ数が 100,000 人を超えるような大きな ISP で,"example.com" や "example.de" など数種類のドメインしか提供しない場合は,ISPDB へ設定を登録しても良いですし,設定ファイルサーバを立てても良いでしょう. しかし,サーバが Email アドレスのエイリアスをサポートしていたり,ログイン名がメールアドレスに含まれてないような場合(例えば,メールアドレスは "[email protected]" なのに IMAP/POP/SMTP のログイン名が "hero" でも "[email protected]" でもなく, "u67578" であるような場合など)は Email アドレスからログイン名をルックアップしてくれるような設定サーバを用意する必要があります.
サーバがカスタマードメインをサポートしている場合(例えば ISP としては"hoster.com" を提供しているのに,ユーザが "[email protected]" と"[email protected]" を利用する場合)は,設定ファイルサーバを用意する必要があります.この場合,DNS MX に頼っても良いでしょう.
比較的小さな企業が社員の PC へ Thunderbird をインストールしようとしている場合は,設定ファイルを Thunderbird のインストール先に配置しておくのが良いでしょう.
ISPDB
データベースの URL は <https://live.mozillamessaging.com/autoconfig/v1.1/> にドメイン名を付け加えたものとなります(例: <https://live.mozillamessaging.com/autoconfig/v1.1/freenet.de>).
現段階での登録方法は,次のとおりです: まず Bugzilla にバグを立てて下さい.このとき Product に "Mozilla Messaging", Component に "ispdb" を指定します.そして,以下で説明する要件を満たした設定ファイルを添付します.その後 bwinton, gozer, ben.bucksch の内の誰かへレビューを依頼して下さい.
将来的には,単純に設定ファイルを ISPDB サーバへアップロードして登録するだけで良いようにしたいと考えています.
ISP サーバにおける設定ファイル
Email アドレスが "[email protected]" のとき,Thunderbird はまず <https://autoconfig.example.com/mail/[email protected]> をチェックし,次に <https://example.com/.well-known/autoconfig/mail/config-v1.1.xml> をチェックします.
小さな企業
小さな企業では,<https://example.com/.well-known/autoconfig/mail/config-v1.1.xml> といったアドレスで XML 形式の設定ファイルを単にサーバへ配置するだけで OK です.
ドメイン保有者 (ISP)
ISP 自体は hoster.com というアドレスを提供しているが,ISP のユーザは fancy.com や example.com といったアドレスを登録しており,そういったアドレス向けにメールを扱う必要がある,といった場合には自動設定サーバを用意する必要があります.
DNS
ISP ユーザのドメイン毎に DNS レコードを追加します(MX, A www など,既存のものに加えてください):
autoconfig IN A 10.2.3.4
や
autoconfig IN CNAME autoconfig.hoster.com
.
10.2.3.4 や autoconfig.hoster.com は自分の IP アドレス / ホスト名へ変更してください.
こうすることにより Thunderbird へ自分が hoster であることを伝えることができます.
Web サーバ
物理的な IP アドレスへ割り当てられた Web サーバを準備する必要があります.他の Web サーバと同じマシンで稼働させることも可能ですが,
Web サーバは,独自ドメインを利用している全ての IPS ユーザのドメイン(autoconfig.*)へマッチするバーチャルホストを使用する必要があります.このとき Apache 用語で言うところの "IP ベースなバーチャルホスト" を利用することができます.これは Apache の設定ファイルにおける「Listen 10.2.3.4:80」を意味します(もちろん,自分の持っている IP アドレスを使うようにしてください)
<VirtualHost 10.2.3.4:80> # バーチャルホスト設定は,一つの IP に対して必ず一つだけ用意してください! DocumentRoot /var/www/autoconfig/ ServerName autoconfig.hoster.com <Directory /var/www/autoconfig> Order allow,deny allow from all </Directory> </VirtualHost>
設定ファイルを,サーバの /mail/config-v1.1.xml といった URL に配置します.
設定ファイルは Content-Type: text/xml
(もしくは application/xml
)で送信するようにして下さい.それ以外の Content Type で提供されたファイルは無視されます.また,設定ファイルが非 ASCII 文字を含む場合は UTF-8 をエンコーディングとして利用してください.
ネームベースのバーチャルホストを使用する場合,全ユーザのドメイン向けに autoconfig サブドメインを用意するのは面倒です.このような場合は,autoconfig.* subdomains にマッチする Rewriterule をデフォルトのバーチャルホスト(Debian では /etc/apache2/sites-enabled/000-default)に用意しておけば良いでしょう:
<VirtualHost *:80> # バーチャルホスト ServerAdmin [email protected] ServerName www DocumentRoot /var/www RewriteEngine On RewriteCond %{HTTP_HOST} ^autoconfig\. [NC] RewriteRule ^/(.*) https://autoconfig.hoster.com/$1 [L,R=301] #... </VirtualHost> <VirtualHost *:80> DocumentRoot /var/www/autoconfig/ ServerName autoconfig.hoster.com <Directory /var/www/autoconfig> Order allow,deny allow from all </Directory> </VirtualHost>
設定ファイル
設定ファイルの作成方法 と 設定ファイルの定義 に詳しい情報があります.