HowTos/fetchmailを使ったScalixメールボックスへの配送

出典: ScalixWikiJP

Scalix Wiki -> How-Tos -> fetchmail

目次

fetchmail

fetchmailはメールリレープログラムです。 ルーティング情報がないメールでも目的のアドレスへ配送することができます。

fetchmailは次のURLからダウンロードすることができます。http://fetchmail.berlios.de/ fetchmailは通常ディストリビューションのパッケージでも提供されています。 yastやyum、up2date、apt-getなどのパッケージ管理ツールでインストールできます。 詳細はディストリビューション付属のマニュアルをご覧ください。

fetchmailにはシングルドロップモードとマルチドロップモードがあります。 シングルドロップモードは目的メールボックスからメールを取得し、目的のメールアドレスへ配送します。 マルチドロップモードは目的のメールボックスから複数のメールアドレスへメールを配送します。 このHowTosではシングルドロップモードについてのみ説明します。 マルチドロップモードについてはfetchmailのマニュアルなどを参照してください。

fetchmailには設定ファイルによるものと、コマンドラインオプションでの2つの設定方法があります。 このHowTosではコマンドラインによる設定を説明します。

fetchmailの設定

fetchmailはメールの取得先とメールの配送先を設定しなければなりません。

メールがプロバイダのPOPサーバに保存されており、Scalixのメールボックスに配送する場合は次のようにfetchmailを使用します。

fetchmail -p pop3 -S yourserver.localdomain.com --smtpname your.name@localdomain.com -u youruser@provider.com popserver.provider.com

上記コマンドはプロバイダのPOPサーバ上のすべてのyouruser@provider.comのメールボックスのメールをScalixサーバ(yourserver.localdomain.com)へ配送します。

-Sフラッグを見てみると引数がyourserver.localdomain.comとなっていることに注意してください。 Scalixサーバ上でfetchmailを使用する場合は、プロバイダから取得したメールの配送アドレスにlocalhostや127.0.0.1を指定したいかもしれません。 しかしながら、このアドレスではScalixのメールボックスへメールを配送することはできません。 その理由はsendmailがlocalhost:25での受信をScalixから外へ出ていくメールに制限しているからです。 メールの受信はScalixサーバの"hostname --fqdn"コマンドで表示されるホストのIPアドレスの25番ポートに限定されています。 かならずFQDNのホスト名を使用してください。

プロバイダへメールを残す場合はfetchmailに-kオプションをつけてください。

fetchmailの自動化

fetchmailはcronプログラムを使うことで定期的に実行することができます。

cronプログラムについては http://www.tldp.org/LDP/lame/LAME/linux-admin-made-easy/index.html の9章4節をご覧ください。

cronプログラムは次のような形式で設定します。

*/5 * * * * "/usr/bin/fetchmail -p pop3 -S yourserver.localdomain.com --smtpname your.name@localdomain.com \
 -u youruser@provider.com popserver.provider.com >/dev/null 2>&1"

5分ごとにfetchmailを実行し、メールの取得、配送をおこないます。

パスワードの取り扱い

POPサーバへアクセスしメールを取得するには認証パスワードが必要となります。 fetchmailはコマンドラインではパスワードを入力することはできませんので、ファイルにパスワードを保存し、そのファイルを使って認証をおこないます。

パスワードを保存するファイルは、ファイルの所有者以外は見ることができないようにchmod 400でgroup、otherが読むことができないようにしてください。 パスワードファイルは、fetchmailを実行するユーザのホームディレクトリに~/.netrcというファイル名で作成してください。 ファイルの記述形式は次のようになります。

machine popserver.provider.com
login youruser
password pop3password

fetchmailは実行時に適切なファイルを見つけ読み込みます。 複数のユーザを一つのファイルに記述することもできます。

また、fetchmailの設定ファイル自体にパスワードを埋め込んでいる場合は、このfetchmailの設定のパーミッションを400に設定してください。