複数ドメイン宛メールの集約(Fetchmail)

最終更新日: 2020.12.29

■概要

複数ドメイン宛のメールを自宅サーバーのメールアドレス宛に集約する。
ここでは、プロバイダアカウント宛メール、GMailアカウント宛メール、Hotmailアカウント宛メールをFetchmailで自宅メールサーバーに取り込む。

メールサーバー構築済であること


■Fetchmailインストール

[root@centos ~]# yum -y install fetchmail ← Fetchmailインストール

■Fetchmail設定

(1)Fetchmail設定
Fetchmailの設定は各ユーザーで行なう。
ここでは、プロバイダアカウント宛メール、GMailアカウント宛メール、Hotmailアカウント宛メールをcentosユーザーが取り込むものとする。
[centos@centos ~]$ vi .fetchmailrc ← Fetchmail設定ファイル作成
# 共通設定
set daemon 300 # 300秒間隔でメールチェックを行なう
set postmaster root # 最終的なメールの送信先
set no bouncemail # エラーメールをpostmasterに送る
set syslog # ログを/var/log/maillogに記録する

# 全サーバー共通デフォルト設定
defaults
  bad-header accept # ヘッダ異常のあるメールも取り込む
  protocol auto
  no mimedecode
  no fetchall # 未読メールのみ取り込む場合
  #fetchall # 既読・未読にかかわらず全てのメールを取り込む場合
  no keep # 取り込んだメールをサーバー上から削除する場合
  #keep # 取り込んだメールをサーバー上に残しておく場合

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

# プロバイダアカウント宛メール取り込み設定※POP3のみでPOP3Sが提供されていない場合
poll xxxxxxxx # プロバイダ受信メールサーバー名
  username "xxxxxxxx" # プロバイダユーザー名
  password "xxxxxxxx" # プロバイダパスワード
  is centos here  # 転送先ユーザー名

# GMailアカウント宛メール取り込み設定
poll pop.gmail.com
  protocol pop3
  port 995
  user "xxxxxxxx" # GMailユーザー名
  pass "xxxxxxxx" # GMailパスワード
  ssl
  is centos here  # 転送先ユーザー名

# Hotmailアカウント宛メール取り込み設定
poll imap-mail.outlook.com # プロバイダ受信メールサーバー名
  protocol imap
  port 993
  username "xxxxxxxx@hotmail.com" # Hotmailユーザー名
  password "xxxxxxxx" # Hotmailパスワード
  is centos here  # 転送先ユーザー名

# Hotmailアカウント宛メール(迷惑メール)取り込み設定
poll imap-mail.outlook.com # プロバイダ受信メールサーバー名
  protocol imap
  port 993
  username "xxxxxxxx@hotmail.com" # Hotmailユーザー名
  password "xxxxxxxx" # Hotmailパスワード
  ssl
  folder Junk
  is centos here  # 転送先ユーザー名

[centos@centos ~]$ chmod 600 .fetchmailrc ← Fetchmail設定ファイルのパーミッションを所有者以外参照できないようにする

(2)GMail設定(GMailアカウント宛メールを取り込む場合のみ)
安全性の低いアプリによるアカウントの使用を許可する
GMailの設定でPOPアクセスを有効にする
また、Fetchmail設定でno keep(取り込んだメールをサーバー上から削除する)設定を行う場合、「POP でメールにアクセスする場合」で「Gmailのメールを削除する」を選択、keep(取り込んだメールをサーバー上に残しておく)設定を行う場合、「POP でメールにアクセスする場合」で「Gmailのメールを既読にする」を選択する。

(3)Hotmil設定(Hotmailアカウント宛メールを取り込む場合のみ)
Outlook.comのメールアドレスを、メールクライアントで使用する POPサーバー編⇒【事前に必要な設定】

■Fetchmail起動

システム起動時にfetchmail設定ユーザー(ホームディレクトリに.fetchmailrcがあるユーザー)でfetchmailを自動起動できるようにする。
[root@centos ~]# vi /lib/systemd/system/fetchmail@.service ← Fetchmail起動用systemdテンプレート作成
[Unit]
Description=A remote-mail retrieval utility
After=network.target postfix.service

[Service]
User=%I
ExecStart=/usr/bin/fetchmail
RestartSec=1

[Install]
WantedBy=multi-user.target

[root@centos ~]# vi fetchmail-start.sh ← 全ユーザーFetchmail起動スクリプト作成
#!/bin/bash

for user in `ls /home/`
do
    if [ -f /home/$user/.fetchmailrc ]; then
        echo "fetchmail for $user starting..."
        systemctl start fetchmail@$user
    fi
done

[root@centos ~]# vi /lib/systemd/system/fetchmail-start.service ← 全ユーザーFetchmail起動用systemd設定ファイル作成
[Unit]
Description=Fetchmail Auto Start
After=network.target postfix.service

[Service]
Type=oneshot
ExecStart=/bin/sh /root/fetchmail-start.sh
RestartSec=1

[Install]
WantedBy=multi-user.target

[root@centos ~]# systemctl start fetchmail-start ← 全ユーザーFetchmail起動

[root@centos ~]# systemctl enable fetchmail-start ← 全ユーザーFetchmail自動起動設定

■Fetchmail確認

取り込み対象メールアドレス宛にテストメールを送信してみて、メールチェック間隔時間経過後、送信したテストメールがfetchmail起動ユーザー宛に届いていることを確認


■関連コンテンツ




▲このページのトップへ戻る

ご自由にリンクしてください(連絡は不要です)
本ページへのご意見・ご要望、誤字・脱字・リンク切れ等のご連絡はこちらからお願いします