Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

19.3.3. Fetchmail

Fetchmail は、リモートサーバーから電子メールを取得してローカルの MTA に配信する MTA です。多くのユーザーは、リモートサーバー上にあるメッセージをダウンロードするプロセスと、MUA で電子メールを読み取り、整理するプロセスを別々にする機能性を評価してます。ダイアルアップユーザーのニーズを念頭に置いて設計された Fetchmail は、POP3IMAP などのプロトコルを使用して、メールスプールファイルに接続し、すべての電子メールメッセージを迅速にダウンロードします。必要に応じて、電子メールメッセージを SMTP サーバーに転送することもできます。
fetchmail パッケージのインストール
Fetchmail を使用するには、最初に root で以下を実行し、fetchmail パッケージがシステムにインストールされていることを確認します。
~]# yum install fetchmail
yum を使用したパッケージのインストールは 「パッケージのインストール」 を参照してください。
Fetchmail は、各ユーザーのホームディレクトリー内の .fetchmailrc ファイルを使用して、各ユーザーに設定されています。これが存在しない場合は、ホームディレクトリーに .fetchmailrc ファイルを作成します。
Fetchmail は .fetchmailrc ファイル内の詳細設定を使用して、リモートサーバー上にある電子メールを確認し、ダウンロードします。その後、これをローカルマシンのポート 25 に配信し、ローカルの MTA を使用してメールを正しいユーザーのスプールファイルに配置します。Procmail が利用できる場合は起動して電子メールをフィルターし、MUA が読み込むことができるようにメールボックスに配置します。

19.3.3.1. Fetchmail の設定オプション

Fetchmail の実行時に、コマンドラインですべての必要なオプションを渡して、リモートサーバーの電子メールを確認することは可能ですが、.fetchmailrc ファイルを使用した方がはるかに簡単です。希望の設定オプションを .fetchmailrc ファイルに置き、それらのオプションが fetchmail コマンドを実行するたびに使用されるようにします。Fetchmail の実行時にオプションを上書きしたい場合は、コマンドラインでそのオプションを指定します。
ユーザーの .fetchmailrc ファイルには、3 つのクラスの設定オプションが含まれています。
  • グローバルオプション: プログラムの動作を制御する、または電子メールを確認する全接続の設定を提供する指示を Fetchmail に指定します。
  • server options: ポーリングされるサーバーに必要な情報を指定します。ホスト名をはじめ、確認するポートやタイムアウトになるまでの秒数など、特定の電子メールサーバーの設定などです。こうしたオプションは、該当するサーバーを使用する全ユーザーに影響を及ぼします。
  • ユーザーオプション: 指定された電子メールサーバーを使用して、電子メールの認証や確認を行うにあたって必要なユーザー名、パスワードなどの情報を格納します。
グローバルオプションは .fetchmailrc ファイルの上部に表示され、その後に 1 つ以上のサーバーオプションが表示されます。各オプションは Fetchmail がチェックする異なるメールサーバーを指定します。ユーザーオプションは、そのメールサーバーをチェックする各ユーザーアカウントのサーバーオプションに従います。サーバーオプションと同様に、複数のユーザーオプションを指定することで特定のサーバーでの使用、同一サーバー上の複数の電子メールアカウントの確認を行うことができます。
サーバーオプションを .fetchmailrc ファイルで利用するには、サーバーの情報の先頭に poll または skip などの特別なオプションの動詞を使用します。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 の mail spool に送信されます。これにより、1 つの MUA 受信トレイに表示され、複数のサーバーで複数のクラスを確認できます。各ユーザーの固有の情報は、user アクションで開始します。
設定からのパスワードの省略
ユーザーはパスワードを .fetchmailrc ファイルに配置する必要はありません。with password '<password>' セクションを省略すると、Fetchmail は起動時にパスワードを要求します。
Fetchmail には、グローバルオプション、サーバーオプション、ローカルオプションが多数あります。これらの多くのオプションは、ほとんど使用されないか、非常に特殊な状況にのみ適用されます。fetchmail の man ページでは、各オプションの詳細が記載されていますが、最も一般的なものを以下の 3 セクションで説明します。