Join MDN and developers like you at Mozilla's View Source conference, 12-14 September in Berlin, Germany. Learn more at https://viewsourceconf.org

Thunderbird ISP hooks

イントロダクション

ISP やウェブメールプロバイダから E メールにアクセスすることは、Thunderbird を使い始めようとする多くのユーザにとって大きな負担になります。ユーザは、POP または IMAP 受信サーバ名、認証方法、SSL/TLS などのセキュリティ設定、送信サーバ名などの固有の設定情報を知る必要があります。多くの ISP やウェブメールプロバイダは、様々な設定を持つ異なるメールクライアントでアカウント設定ができるように、ユーザを導くオンラインドキュメントを維持しなければなりません。

現在の Thunderbird には、ISP およびウェブメールのユーザが簡単にアカウントを作成できるようにする仕組みがあります。新規ユーザがアカウントに関連付けられた E メールアドレスを入力すると、Thunderbird は残りのアカウントの詳細を設定します。Thunderbird 2 は gmail および .mac アカウントの ISP 情報を搭載しています。追加の ISP 設定は拡張機能としてインストールすることができます。

このドキュメントでは、ISP 設定ファイルの書き方と Thunderbird 用の拡張機能としてバンドルする方法について説明します。

仕組み

考え方は至って簡単です。ISP やウェブメールプロバイダのためのアカウント設定は RDF または XML ファイルで指定されています。このファイルは、ユーザが拡張機能としてインストールすることができます。

Thunderbird はこれらの設定ファイルを探し、新しいアカウントの項目をアカウント作成ウィザードに追加します。ユーザは氏名とユーザ名を入力し、残りのアカウント設定は設定ファイルから自動的に設定されます。

以下の画像は、仮の ISP ファイルを追加したアカウント作成ウィザードのスクリーンショットです。

Image:ISPAccountwizard.png

ISP 設定ファイルの作成

設定ファイルは、メールアカウント (IMAP, News, POP3, movemail) および (適切な場合は) 送信サーバのデフォルト設定が書かれた、文字コードが UTF-8 の単純なテキストファイルです。

実例

こちらに、テンプレートとして利用できる ISP 設定ファイルの実例があります。

アカウント属性の追加

メールアカウントには、それに関連付けられたいくつかのオブジェクトがあります。受信サーバ、送信 (SMTP) サーバ、そしてユーザ情報です。各オブジェクトは、設定ファイルの中で指定できる固有の設定を持っています。

  • 設定ファイル内に記述する一般的な受信サーバに関するタグは、nsIMsgIncomingServer.idl で指定されている属性に合わせます。(タグは、この IDL ファイルの「attribute」としてリストされているすべてのオブジェクトに自動的にマッピングされます)
  • ユーザ情報に関するタグも、同じように nsIMsgIdentity.idl で指定されている属性に合わせます。
  • 送信サーバに関するタグも、同じように nsISmtpServer.idl で指定されている属性に合わせます。

注: 受信サーバの種類は文字列で、imappop3nntp のいずれかです。以下は POP サーバを定義した例です。

<!-- POP3 サーバ情報 -->
<NC:incomingServer>
  <NC:nsIMsgIncomingServer>
    <NC:prettyName>Mozilla ISP</NC:prettyName>
    <NC:hostName>pop.example.net</NC:hostName>
    <NC:type>pop3</NC:type>
    <!--
        Thunderbird 3 では、以下の設定が "TypeError: dest.setBoolAttribute is not a function"
        を引き起こし、作成されるアカウントが不正なものとなってしまいます。
        <NC:rememberPassword>true</NC:rememberPassword>
    -->
  </NC:nsIMsgIncomingServer>
</NC:incomingServer>

NC:typepop3 から imap に変えると、IMAP サーバのアカウントを作成できます。

nsIMsgIncomingServer.idl を見ると、port という一般的な属性があります。ISP は、nsIMsgIncomingServer にポート属性を導入することで、サーバに非標準のポートを指定することができます:

<NC:incomingServer>
  <NC:nsIMsgIncomingServer>
  ..
  <NC:port>555</NC:port>
  ..
  </NC:nsIMsgIncomingServer>
</NC:incomingServer>

nsIMsgIncomingServer に含まれている、ISP がよく設定したいと考えるもうひとつの一般的な属性は socketType です。この値には、0 (標準のソケット)、1 (可能であれば TLS を使用)、2 (常に TLS を使用)、3 (SSL を使用) のいずれかを指定できます。

nsIMsgIncomingServer に含まれている一般的な属性はすべてこの設定ファイルで指定できます。ユーザ情報と送信サーバの設定についても同様です。

特定のサーバ向けの属性

一般的な属性に加えて、一部の属性は特定の種類の受信サーバにのみ適用されます。これらをサーバ情報内のセクションに分けて指定してください。この例は IMAP サーバ用です:

<NC:ServerType-imap>
  <NC:nsIImapIncomingServer>
    <NC:cleanupInboxOnExit>true</NC:cleanupInboxOnExit>
  </NC:nsIImapIncomingServer>
</NC:ServerType-imap> 

これらのタグに一致する属性は次のコードで定義されています:

ドメインを必要とするユーザ名

一部の ISP やウェブメールプロバイダでは、受信サーバや送信サーバのユーザ名の後にドメイン名を追加する必要があります。これは、設定ファイル内で次のタグでを使用して指定することができます: incomingServerUserNameRequiresDomain および smtpUserNameRequiresDomain

この例は、ユーザ名にドメイン名が追加されたものを必要とする SMTP サーバ の例です。smtpUserNameRequiresDomain タグが smtp 要素を閉じた後に書かれていることに注意してください。

<NC:smtp>
  <NC:nsISmtpServer>
    <NC:hostname>smtp.mozilla.org</NC:hostname>
    <NC:port>465</NC:port>
    <NC:trySSL>3</NC:trySSL>
    <NC:description>Moco</NC:description>
  </NC:nsISmtpServer>
</NC:smtp>

<NC:smtpUserNameRequiresDomain>true</NC:smtpUserNameRequiresDomain>
<NC:smtpRequiresUsername>true</NC:smtpRequiresUsername>
<NC:smtpCreateNewServer>true</NC:smtpCreateNewServer>
<NC:smtpUsePreferredServer>true</NC:smtpUsePreferredServer>

設定ファイルの例

これは gmail をサポートするために私たちが生成した RDF ファイルです。この例をコピーする場合は、about 属性を "domain:gmail.com" から変更することを忘れないでください。

<?xml version="1.0"?>
<!DOCTYPE RDF>
<RDF:RDF
    xmlns:NC="http://home.netscape.com/NC-rdf#"
    xmlns:RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#">

  <RDF:Description about="NC:ispinfo">
    <NC:providers>
      <NC:nsIMsgAccount about="domain:gmail.com">
        <!-- pop3 server info -->
        <NC:incomingServer>
          <NC:nsIMsgIncomingServer>
            <NC:prettyName>Gmail</NC:prettyName>
            <NC:hostName>pop.gmail.com</NC:hostName>
            <NC:type>pop3</NC:type>
            <NC:ServerType-pop3>
              <NC:nsIPopIncomingServer>
                <NC:leaveMessagesOnServer>true</NC:leaveMessagesOnServer>
                <NC:deleteMailLeftOnServer>false</NC:deleteMailLeftOnServer>
              </NC:nsIPopIncomingServer>
            </NC:ServerType-pop3>
            <NC:loginAtStartUp>true</NC:loginAtStartUp>
            <NC:downloadOnBiff>true</NC:downloadOnBiff>
            <!--
                Thunderbird 3 では、以下の設定が "TypeError: dest.setBoolAttribute is not a function"
                を引き起こし、作成されるアカウントが不正なものとなってしまいます。
                <NC:rememberPassword>true</NC:rememberPassword>
            -->
            <NC:port>995</NC:port>
            <NC:socketType>3</NC:socketType>
          </NC:nsIMsgIncomingServer>
        </NC:incomingServer>

        <!-- smtp server info -->
        <NC:smtp>
          <NC:nsISmtpServer>
            <NC:hostname>smtp.gmail.com</NC:hostname>
            <NC:port>587</NC:port>
            <NC:trySSL>2</NC:trySSL>
            <NC:description>Gmail</NC:description>
          </NC:nsISmtpServer>
        </NC:smtp>
        <NC:smtpRequiresUsername>true</NC:smtpRequiresUsername>
        <NC:smtpCreateNewServer>true</NC:smtpCreateNewServer>
        <NC:smtpUsePreferredServer>true</NC:smtpUsePreferredServer>

        <!-- identity defaults -->
        <NC:identity>
          <NC:nsIMsgIdentity>
          </NC:nsIMsgIdentity>
        </NC:identity>

        <!-- other options -->
        <NC:wizardSkipPanels>true</NC:wizardSkipPanels>
        <NC:wizardShortName>Gmail</NC:wizardShortName>
        <NC:wizardLongName>Gmail</NC:wizardLongName>
        <NC:wizardShow>true</NC:wizardShow>
        <NC:wizardPromote>true</NC:wizardPromote>
        <NC:emailProviderName>Gmail</NC:emailProviderName>
        <NC:sampleEmail>example@gmail.com</NC:sampleEmail>
        <NC:sampleUserName>example</NC:sampleUserName>
        <NC:emailIDDescription>Gmail Username:</NC:emailIDDescription>
        <NC:showServerDetailsOnWizardSummary>true</NC:showServerDetailsOnWizardSummary>
      </NC:nsIMsgAccount>
    </NC:providers>
  </RDF:Description>
</RDF:RDF>

テストする

ISP 設定ファイルの作成時に、拡張機能としてインストールせずに、すばやく設定をテストすることができる方法があります。まず設定ファイルのコピーを <path to thunderbird.exe>\isp\ に置きます。gmail.rdf および rss.rdf がすでにその場所にあるはずです。Thunderbird を再起動すると、あなたのアカウント項目がアカウント作成ウィザードに記載されるでしょう。

配布

これで、ISP やウェブメールプロバイダのための設定ファイルの作成が完了しました。次はこれを配布しましょう。

配布には 2 つの方法があります: 拡張機能として配布、またはカスタムビルドを配布します。

拡張機能

設定ファイルは、Mozilla の拡張機能システムを使って Thunderbird 2 にインストールできます。拡張機能は Mozilla Add-ons に登録することもできます。

拡張機能には isp という名前のサブディレクトリ内に設定ファイルを含める必要があります。Thunderbird 2.0.0.x は有効な拡張機能の一覧から isp という名前のディレクトリを探します。アカウントウィザードは、これらの場所に見つかった RDF または XML 設定ファイルを読み込みます。

拡張機能のサンプル

テンプレートとして使用できる拡張機能の例があります: Media:Example-isp.xpi をダウンロードしてください。XPI ファイルは、WinZIP のような ZIP プログラムを使用して展開できる、ただの ZIP ファイルです。

カスタムビルド

カスタマイズ版の Thunderbird 2 を配布されている場合は、$INSTALLFOLDER/isp/ に RDF または XML ファイルを追加するだけです。$INSTALLFOLDERthunderbird.exe があるフォルダです。Thunderbird はこれらの RDF ファイルを、このフォルダ内で探します。

注: Thunderbird 1.5.0.x では、この指定の場所は $INSTALLFOLDER/defaults/isp にしなければなりません。

ドキュメントのタグと貢献者

 このページの貢献者: ethertank, mooz, Marsf, kohei.yoshino
 最終更新者: ethertank,