fechmailの構築 合計:
昨日:
今日:

更新日:2011/10/20

ホームへ戻る

複数のメールを集約するためのfetchmailをインストールする。

【前提条件】メールサーバーが構築済みであること。

 

 
◆Fetchmailインストール <<TOP

yumでfetchmailをインストールする

[root@server ~]# yum -y install fetchmail ← fetchmailのインストール
    ・
    ・
    ・
Downloading Packages:
(1/1): fetchmail-6.3.6-1. 100% |=========================| 526 kB    00:13     
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing: fetchmail                    ######################### [1/1] 

Installed: fetchmail.i386 0:6.3.6-1.1.el5
Complete!
[root@server ~]#

 

 
◆Fetchmail設定 <<TOP

fetchmailの設定は、rootではなく、各ユーザーで行うこと。設定ファイルを作成し、それぞれのユーザのルートに置いておく。

ここでは、adminユーザーとして設定していく。rootから各ユーザではなく、接続から各ユーザでログオンし設定してゆく。

[admin@server ~]$ vi .fetchmailrc ← 設定ファイルの作成
#共通設定
set daemon 480      # 480(8分)秒間隔でメールチェックを行なう
set postmaster root # 最終的なメールの送信先
set no bouncemail   # エラーメールをpostmasterに送る
set syslog          # ログを/var/log/maillogに記録する


# 全サーバー共通デフォルト設定
defaults
  protocol auto
  no mimedecode     # 8ビットデータに変換しない
  no fetchall       # 未読メールのみ取り込む場合
  #fetchall         # 既読・未読にかかわらず全てのメールを取り込む場合
  #no keep          # 取り込んだメールをサーバー上から削除する場合
  keep              # 取り込んだメールをサーバー上に残しておく場合


# プロバイダアカウント宛メール取り込み設定※POP3Sが提供されている場合
#poll xxxxxxxx # プロバイダ受信メールサーバー名
#  protocol pop3
#  port 995
#  username "xxxxxxxx" # プロバイダユーザ名
#  password "xxxxxxxx" # プロバイダパスワード
#  ssl
#  mda "/usr/sbin/sendmail admin@arisonsvr.org" # 転送先メールアドレス

# プロバイダアカウント宛メール取り込み設定※POP3のみでPOP3Sが提供されていない場合
#niftyの場合

poll pop.nifty.com    # プロバイダ受信メールサーバー名
  username "xxxxxxxx" # プロバイダユーザ名
  password "xxxxxxxx" # プロバイダパスワード
  mda "/usr/sbin/sendmail admin@arisonsvr.org" # 転送先メールアドレス
  
# GMailアカウント宛メール取り込み設定
poll pop.gmail.com
  protocol pop3
  port 995
  user "xxxxxxxx" # GMailユーザ名
  pass "xxxxxxxx" # GMailパスワード
  ssl
  mda "/usr/sbin/sendmail admin@arisonsvr.org" # 転送先メールアドレス

# Hotmailアカウント宛メール取り込み設定
poll pop3.live.com # プロバイダ受信メールサーバー名
  protocol pop3
  port 995
  username "xxxxxxxx@hotmail.com" # Hotmailユーザ名
  password "xxxxxxxx" # Hotmailパスワード
  ssl  mda "/usr/sbin/sendmail admin@arisonsvr.org" # 転送先メールアドレ>ス


[admin@server ~]$ chmod 600 .fetchmailrc ← 所有者のみread/writeできるようにする
[admin@server ~]$
A、Gmailアカウントを取り入れる場合
	  Gmailの設定でPOPアクセスを有効にしておく必要がある。
  ここを参照して下さい。アドレスは、変わるかもしれません。
	    
 
◆fetchmailの起動 <<TOP

 

[admin@server ~]# fetchmail

 

◆Fetchmail自動起動設定 <<TOP

システム起動時にfetchmail設定ユーザ(ホームディレクトリに.fetchmailrcがあるユーザ)でfetchmailを自動起動できるようにする。rootユーザに戻っている必要がある

[admin@server ~]$ su -
パスワード:

[root@server ~]# vi /etc/rc.d/init.d/fetchmail
#!/bin/bash
#
# Fetchmail
#
# chkconfig: - 99 20
# description: Fetchmail auto start script

# Source function library.
. /etc/rc.d/init.d/functions

start() {
    # Start daemons.
    for user in `ls /home/`
    do
        if [ -f /home/$user/.fetchmailrc ]; then
            if [ ! -f /home/$user/.fetchmail.pid ]; then
                echo "fetchmail for $user starting..."
                su $user -s "/bin/bash" -c "/usr/bin/fetchmail"
            else
                PID=`cat /home/$user/.fetchmail.pid|cut -d " " -f 1`
                ps $PID>/dev/null
                if [ $? = 0 ]; then
                    echo "fetchmail for $user is already started..."
                else
                    echo "fetchmail for $user is restartng..."
                    su $user -s "/bin/bash" -c "/usr/bin/fetchmail"
                fi
            fi
        fi
    done

    if [ -f /root/.fetchmailrc ]; then
        if [ ! -f /var/run/fetchmail.pid ]; then
            echo "fetchmail for root starting..."
            /usr/bin/fetchmail
        else
            PID=`cat /var/run/fetchmail.pid|cut -d " " -f 1`
            ps $PID>/dev/null
            if [ $? = 0 ]; then
                echo "fetchmail for root is already started..."
            else
                echo "fetchmail for root is restartng..."
                /usr/bin/fetchmail
            fi
        fi
    fi
}

stop() {
    # Stop daemons.
    if [ -f /var/run/fetchmail.pid ]; then
        echo "fetchmail for root stoping..."
        /usr/bin/fetchmail --quit
    fi

    for user in `ls /home/`
    do
        if [ -f /home/$user/.fetchmail.pid ]; then
            echo "fetchmail for $user stoping..."
            su $user -s "/bin/bash" -c "/usr/bin/fetchmail --quit"
        fi
    done
}

# See how we were called.
case "$1" in
    start)
        start
        ;;
    stop)
        stop
        ;;
    restart)
        stop
        start
        ;;
    status)
        run="0"

        if [ -f /var/run/fetchmail.pid ]; then
            PID=`cat /var/run/fetchmail.pid|cut -d " " -f 1`
            ps $PID>/dev/null
            if [ $? = 0 ]; then
                run="1"
                echo "fetchmail for root is running..."
            fi
        fi

        for user in `ls /home/`
        do
            if [ -f /home/$user/.fetchmail.pid ]; then
                PID=`cat /home/$user/.fetchmail.pid|cut -d " " -f 1`
                ps $PID>/dev/null
                if [ $? = 0 ]; then
                    run="1"
                    echo "fetchmail for $user is running..."
                fi
            fi
        done

        if [ $run == "0" ]; then
            echo "fetchmail is not running"
            exit 1
        fi
        ;;
    *)
        echo "Usage: fetchmail {start|stop|restart|status}"
        exit 1
esac

exit $?

[root@server ~]# chmod +x /etc/rc.d/init.d/fetchmail ← 実行権限付与
[root@server ~]# /etc/rc.d/init.d/fetchmail start  ← 起動
fetchmail for admin is already started...
[root@server ~]# chkconfig fetchmail on       ← 自動起動設定
[root@server ~]# chkconfig --list fetchmail     ← 自動起動確認
fetchmail       0:off   1:off   2:on    3:on    4:on    5:on    6:off
[root@server ~]#

 

 
 
   
◆広告等 <<TOP
   
 
 
 
 
TOPへ

Copyright(C) 2005-2011 arisonserver. All rights reserved.