fetchmailとは、外部のメールアカウント(yahooメール等)に届いたメールを一定間隔でメールチェックを行い、自サーバのアカウントの取り込みを行なうツールです。
また、当サイトで紹介している『メール転送機能(procmail)』の『自作CGI(maildelivery.cgi)』を使用すればメール新着転送がない外部メールサーバでもfetchmailでメールを取得し転送する事が可能となります。
# yum -y install fetchmail |
例)「linux」というユーザで外部メール(mail.hogehoge.netよりferoraというアカウントのメールを取り込む場合) 一般ユーザ「linux」になる # su - linux fetchmail設定ファイルの作成 $ vi .fetchmailrc # ログファイルの指定 set logfile "fetchmail.log" # エラーの送信先 set postmaster root set no bouncemail # メールのチェック間隔(秒) set daemon 300 # デフォルト設定 defaults # プロトコルを指定(ex.[auto]or[pop2]or[APOP]or[RPOP]or[KPOP]or・・・) protocol pop3 # 既読のチェックを行う uidl # 未読メールの取り込み(ex.全て取り込む場合[fetchall]) no fetchall # サーバ上にメールを残す(ex.削除する場合[no keep]) keep # mimed ecode(8ビットデータに変換しない) no mimedecode # 送信サーバ(SMTPサーバ) smtphost localhost # 外部メールサーバの設定(取り込み元) poll mail.hogehoge.net # アカウント名 user fedora # パスワード password "himitsu" 同一外部メールサーバに複数のアカウントがある場合、「user」と「password」を列挙します。 他の外部メールサーバを取り込みたい場合、以下の「poll」から「password」を列挙します。 # 外部メールサーバの設定(取り込み元) poll mail.hogehoge.ne.jp # アカウント名 user fedora # パスワード password "himitsu" 設定ファイルを所有者のみRead/Writeにする $ chmod 600 .fetchmailrc |
起動と停止はfetchmail設定ファイルを作成したユーザで起動します。 fetchmailの起動 $ fetchmail fetchmailの停止 $ fetchmail --quit |
このままでは、複数ユーザ設定毎に起動・停止を行わなければなりません。
また、システム再起動を行った場合も同様なので、起動・停止スクリプトを作成しサービスに登録します。
*:ダウンロードした「fetchmail.tar」が「/root/」直下にコピーした場合で説明します。 配置位置に移動 # cd /etc/rc.d/init.d/ tarファイルを展開 # tar xvf /root/fetchmail.tar カレント位置へ移動 # cd 展開したファイル存在の確認 # ls -l /etc/rc.d/init.d/fetchmail -rwxr-xr-x 1 root root 2721 4月 11 11:22 /etc/rc.d/init.d/fetchmail fetchmailスクリプトの動作検証 fetchmailスクリプトを開始 # /etc/rc.d/init.d/fetchmail start fetchmail for root starting... fetchmail for linux starting... fetchmailスクリプトを停止 # /etc/rc.d/init.d/fetchmail stop fetchmail for root stoping... fetchmail: バックグラウンドの fetchmail (PID=28758) が終了しました。 fetchmail for linux stoping... fetchmail: バックグラウンドの fetchmail (PID=28763) が終了しました。 fetchmailスクリプトをシステムに反映 fetchmailスクリプトをサービスに追加 # chkconfig --add fetchmail fetchmailスクリプトを自動起動に設定 # chkconfig fetchmail on |
取り込み対象の外部メールアドレス宛にメールを送信します。
指定した時間を過ぎたら、取り込み先のユーザアカウントでメール受信してみてください。
取り込み対象の外部メールへ送信したメールが、自サーバのアカウントに取り込めているはずです。
動作ログの内容を確認してみると動作結果が確認できます。
fetchmailログの確認 # cat /var/log/fetchmail.log fetchmail: fetchmail 6.2.5 デーモンを動作開始します。 fetchmail: 1 通のメッセージがアカウント fedora , サーバ pop.mail.xxx.xxx.xxx 宛に届いています。 (1178 バイト) fetchmail: [email protected] 宛に届いた 1 番目のメッセージ(全部で 1 通)を読み込んでいます (1178 バイト) fetchmail: サーバからメッセージを削除しませんでした。 fetchmail: 2005年09月22日 14時25分39秒 に休眠状態となりました。 |