27.3.3. Fetchmail
Fetchmail は、リモートサーバーから電子メールを取得してローカルの MTA に配信する MTA です。多くのユーザーは、リモートサーバー上にあるメッセージをダウンロードするプロセスと、MUA で電子メールを読み取り、整理するプロセスを別々にする機能性を評価してます。ダイアルアップユーザーのニーズを念頭に設計された Fetchmail は、POP3 や IMAP などのプロトコルを使用して、メールスプールファイルに接続し、すべての電子メールメッセージを迅速にダウンロードします。また、必要に応じて、電子メールメッセージを SMTP サーバーに転送することもできます。
Fetchmail は、各ユーザーのホームディレクトリー内の
.fetchmailrc
ファイルを使用して、ユーザーごとに設定されます。
Fetchmail は
.fetchmailrc
ファイルの設定を使用して、リモートサーバー上にある電子メールを確認し、ダウンロードします。ローカル MTA を使用して電子メールを正しいユーザーのスプールファイルに配置し、ローカルマシンのポート 25 に配信します。Procmail が利用できる場合は起動して電子メールをフィルターし、MUA が読み込むことができるようにメールボックスに配置します。
27.3.3.1. Fetchmail の設定オプション
Fetchmail の実行時にすべての必要なオプションをコマンドラインで渡し、リモートサーバーで電子メールを確認することは可能ですが、
.fetchmailrc
ファイルを使用する方がはるかに簡単です。希望の設定オプションを .fetchmailrc
ファイルに配置し、それらのオプションが fetchmail コマンドが実行されるたびに使用されるようにします。Fetchmail の実行時にオプションを上書きしたい場合は、コマンドラインでそのオプションを指定します。
ユーザーの
.fetchmailrc
ファイルには、3 つのクラスの設定オプションが含まれています。
- グローバルオプション: プログラムの動作を制御する、または電子メールを確認する全接続の設定を提供する指示を Fetchmail に指定します。
- server options: ポーリングされるサーバーに必要な情報(ホスト名など)を指定します。また、チェックするポートやタイムアウトするまで待機する秒数など、特定の電子メールサーバーの設定などです。こうしたオプションは、該当するサーバーを使用する全ユーザーに影響を及ぼします。
- ユーザーオプション: 指定したメールサーバーを使用して電子メールの認証およびチェックに必要なユーザー名とパスワードなどの情報が含まれています。
グローバルオプションは
.fetchmailrc
ファイルの上部に表示され、その後に 1 つ以上のサーバーオプションが表示されます。各オプションは Fetchmail がチェックする異なるメールサーバーを指定します。ユーザーオプションは、そのメールサーバーをチェックする各ユーザーアカウントのサーバーオプションに従います。サーバーオプションと同様に、複数のユーザーオプションを指定することで特定のサーバーでの使用、同一サーバー上の複数の電子メールアカウントの確認を行うことができます。
サーバーオプションは、サーバー情報の前に ポーリング または skip などの特別なオプションの動詞を使用して
.fetchmailrc
ファイルでサービスを呼び出します。poll アクションは Fetchmail の実行時にこのサーバーオプションを使用するように Fetchmail に指示します。これは、指定したユーザーオプションを使用して電子メールをチェックします。ただし、skip アクションの後にあるサーバーオプションは、Fetchmail が呼び出されたときにこのサーバーのホスト名が指定されていない限り確認されません。skip オプションは、特定して呼び出された時にスキップされたサーバーのみをチェックし、現在稼働中の設定には影響しないため、.fetchmailrc
の設定をテストする場合に便利です。
サンプルの
.fetchmailrc
ファイルは以下の例のようになります。
set postmaster "user1" set bouncemail poll pop.domain.com proto pop3 user 'user1' there with password 'secret' is user1 here poll mail.domain2.com user 'user5' there with password 'secret2' is user1 here user 'user7' there with password 'secret3' is user1 here
この例では、グローバルオプションにより、最終手段としてユーザーに電子メールが送信されるように指定されており(postmaster オプション)、すべての電子メールエラーは送信者ではなく、ポストマスターに送信されます(bouncemail オプション)。set アクションは、この行にグローバルオプションが含まれていることを Fetchmail に伝えます。次に、2 つのメールサーバーが指定されており、もう 1 つは POP3 を使用してチェックするように設定されます。2 番目のサーバーオプションを使用して 2 つのユーザーを確認しますが、ユーザーで見つかったすべての電子メールは user1 のメールスプールに送信されます。これにより、1 つの MUA 受信トレイに表示され、複数のサーバーで複数のクラスを確認できます。各ユーザーの固有の情報は、user アクションで始まります。
注記
ユーザーはパスワードを
.fetchmailrc
ファイルに配置する必要はありません。with password '<password>' セクション を省略すると、Fetchmail は起動時にパスワードを要求します。
Fetchmail には、グローバルオプション、サーバーオプション、ローカルオプションが多数あります。これらの多くのオプションは、ほとんど使用されないか、非常に特殊な状況にのみ適用されます。
fetchmail
の man ページには、各オプションの詳細が記載されていますが、最も一般的なものがここに記載されています。