ローカル環境で sendmail が動作するようになりましたのでメールの送信が出来るようになりましたが、受信に関しては依然、外部のサーバを利用することになります。そこで fetchmail を導入することによって外部のサーバのメールをローカルのサーバに取り込むようにしてみます。
ソースを入手します。
例えば SunSite 等からダウンロード可能です。最新のものは Fetchmail Home Page で。
さくっと展開します。
tachi@galley 203 % pwd |
コンパイル時に必要になりますので GNU flex をインストールします。
ここでは SOFTWARE Companion CD に収録されているものを pkgadd する場合の例を示します (/opt/sfw/bin にインストールされますので path を通しておきます)。
# pwd |
展開したディレクトリ下で configure を実行します。
tachi@galley 208 % pwd |
flex を使用するように Makefile を編集します (v5.8.0 では default で設定されていますので確認だけします)。
LEX = flex |
make します (/usr/ccs/bin/make ではなく、gmake を使います)。
tachi@galley 210 % pwd |
super-user でインストールします。
# pwd |
fetchmail を実行するユーザのホームディレクトリに .fetchmailrc ファイルを作成します。例を示します。
poll pop.hogeracchi.ne.jp |
.fetchmailrc にはパスワードを直接記入しますのでパーミッションを変更します。
tachi@galley 226 % pwd |
実行には fetchmail を直接実行します。
tachi@galley 18 % fetchmail |
↓daemon として実行させる場合。
tachi@galley 49 % fetchmail --daemon 180 |
パートタイムでインターネットに接続する場合は cron で実行させるのがよさそうです。
常時接続環境ではOS起動時に自動起動させて daemon として実行します。
以下は /etc/init.d/fetchmail スクリプトを作成して /etc/rc3.d/S99fetchmail, /etc/rc1.d/K20fetchmail, /etc/rc0.d/K20fetchmail にシンボリックリンクした例です。
#!/sbin/sh # # fetchmail case "$1" in 'start') for user in `ls /export/home/` do if [ -f /home/$user/.fetchmailrc ]; then echo "fetchmail for $user starting." su $user -c "/usr/local/bin/fetchmail --daemon 180" fi done ;; 'stop') for user in `ls /export/home/` do if [ -f /home/$user/.fetchmailrc ]; then su $user -c "/usr/local/bin/fetchmail --quit" fi done ;; *) echo "Usage: $0 { start | stop }" exit 1 ;; esac exit 0 |
↓シンボリックリンク。
# ls -l /etc/init.d/fetchmail |