Gmailの基本機能の一部として、外部メールサーバ(会社のメールサーバとか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
これでおわり!
毎分メールを確認しにいって、メールがあれば転送してくれる設定が完了しました!
以上です。
コメント