getmailを用いて外部メールサーバのメールをGmailに随時転送するの巻

スポンサーリンク

unnamedGmailの基本機能の一部として、外部メールサーバ(会社のメールサーバとかHotmailとか)にあるメールをPOPで取得しGmail上で管理する機能があります。

Gmail で他のアカウントのメールを確認する
https://support.google.com/mail/answer/21289?hl=ja

しかしこの機能には、弱点があります

外部メールサーバからメールを取得する頻度・間隔を設定できないのです。手動ではありますが、Gmailの設定からクリックすることでメールを受信することはできますが、時には15分、長い時では50分もの間外部メールサーバからメールが取得されないことがあります。この間隔は、該当のアカウントに届くメールの頻度等によって自動で調整されているようなのですが、とにもかくにもメールがすぐに確認できないのは困ります。

そこでいろんな手段を考えました。。本当にいろんな手段です。
Gmailを卒業して自身でWebメールが使えるサーバを用意するのも考えました。

でもGmailは捨てられなかった

どこでもアクセスできるし、下書きがデバイス間で共有できるし、メーリングリスト経由で重複配信されているであろうメールを整理してくれたり、フォルダに色を付けれたり、迷惑メールフィルタ機能があったりと、ここ数日でGmailから離れられない自分を実感しました。

そこで2日間の苦闘の末にたどり着いた方法をここで皆さんに紹介します。

getmailで受信し、メールをGmailに転送する!

ここまで来てここでいうのも失礼なのですが、これには何かしらのサーバーが必要です。サーバーではメールサーバーも動いていないといけません。このあたりのハードルがすでにクリアできているものとして説明します。

getmailってのは、POPやIMAP等を用いて外部メールサーバからメールを取得してこれるものです。複数のアカウントを1メールサーバでまとめて管理するときなどに便利なコマンドです。

一般的にはgetmailで取得してきたメールをサーバ内のメールボックスに格納するのですが、今回は外部に転送する方法で夢を実現したいと思います!

まずはgetmailをインストール

# yum -y install getmail

次にgetmail用のディレクトリの作成とレシピファイルを作成します。

# mkdir ~/.getmail
# vi ~./getmail/getmailrc
[options]
verbose = 1
delete = true
read_all = false
# 動作ログをとるなら。取るなら取るでログローテの
# 設定も忘れないように!
# message_log = ~/.getmail/getmail.log

[retriever]
type = SimplePOP3Retriever
server = POPしたいサーバー
username = POPアカウント
password = POPパスワード

[destination]
type = MDA_external
path = /usr/sbin/sendmail
arguments = ("-f", "%(sender)", "-i", "-bm", "転送先のGmailアカウント")
user = nobody
group = nobody

上記の各設定に関して雰囲気でわかると思うんですが、簡単に説明します。

options, retriever, destinationの3部分から構成されています。基本的なオプションと、メール取得方法、取得したメールの配信先を指定しています。詳細は以下のgetmailのマニュアル(英語)を参照してください。

getmail documentation
http://pyropus.ca/software/getmail/configuration.html

はい、ちょっと横道にそれましたが、設定の動作確認を行いましょう。

1.該当アカウントにメールを送る

2.getmailコマンドで確認

# getmail -v

この時点でメールが受信されて転送されている動きが「-v」のオプションのおかげで見えると思う。

3.メールログを確認する

# tail /var/log/maillog

4.転送先のGmailアカウントにてメールの受信を確認

最後に

getmailの動作を自動で行うようにcronの設定を仕込みます。

# crontab -e
* * * * * /usr/bin/getmail > /dev/null 2>&1

 

これでおわり!

 

毎分メールを確認しにいって、メールがあれば転送してくれる設定が完了しました!

 

以上です。

コメント

タイトルとURLをコピーしました