自宅サーバ(Debian7)のエラー通知を、OP25Bを越えて、Gmailで受信する仕組みを作る

Linuxでは、cronでエラーなった場合など、ユーザに通知メールが送信されて、mailコマンドで見ることができる。このメールは、転送することができるが、そのままgmailに転送した場合、家庭用プロバイダの場合OP25Bに阻まれて
送信できない。仕方なく、以下の方法をとる。

f:id:j74th:20130916154217j:plain

  • 外からアクセスできるメールサーバを立てる(Mac OS X 10.8 Server)
  • 自宅サーバ(Debian7.1 Exim4)から、メールサーバへ通知メールを送信
  • GMAILから、POP3で、メールサーバのメールを取得
  • GMAIL自宅サーバの通知メールを閲覧
  • 嬉しい!

外からアクセスできるPOP3サーバを立てる

別に立ててもいいのだが、丁度MacMini Serverがあるので、そのメールサービス機能を使うことにする。

f:id:j74th:20130916154648p:plain

設定内容は、スイッチを"入"に変えるだけ。最初、認証を"ローカルユーザ"にしていたが、そうするとGMAILからアクセスした時にエラーになってしまった。よくわからないが、"自動"にしたらうまくいった。

あとは、ルータで静的NATの設定を行って、メールサーバに外からアクセスできるようにする。一応標準ポートからずらしておいたが、GmailPOP3で扱えるポートは数種類しかないので、そのポートに変更した。

通知元開発サーバのroot、userの通知メールの転送先を設定

Mac、Linuxサーバには、"karen"というユーザでログインしているとする。

root、karenのエイリアスを、メールサーバのログイン名にする。

#vi /etc/aliases
root: karen
karen: karen@mini.local

Exim4の設定を、メールサーバにリレーさせるようにする

#dpkg-reconfigure exim4-config

以下のとおり設定する。

  • メール設定の一般的なタイプ: スマートホストでメール送信; SMTP または fetchmail で受信する
  • システムメール名: そのまま
  • 入力側SMTP接続をリスンするIPアドレス: そのまま(特にリスンしない)
  • メールを受け取るその他の宛先 : そのまま
  • メールをリレーするマシン : 空欄
  • 送出スマートホストのIPアドレスまたはホスト名 : メールサーバのIPアドレス
  • 送出するメールでローカルメール名を隠しますか? : いいえ
  • DNSクエリの数を最小限にとどめますか? : いいえ
  • ローカルメールの配信方式 : /var/mail/内のmbox形式(どれでも)
  • 設定を小さなファイルに分割しますか? : はい(どーでもいいー)

DynamicDNSを利用して、インターネットから自宅サーバにアクセスできるようにする

自分はお名前.comを利用しているので、MacMini内に仮想マシンでWindowsXPを立てて、ダイナミックDNSクライアントを動かしている。

Gmailから、メールサーバのPOP3にアクセスして、通知メールを受信する

  • 設定→アカウント→POP3 を使用して他のアカウントのメッセージを確認→自分のPOP3メールアカウントを追加
  • メールアドレス : karen@mini.local → 次へ
  • ユーザ名 : karen
  • POPサーバ : DynamicDNSのアドレス → 保存

おしまい

Debian7.1なら標準でExim4だけれど、CentOSMacOSXの通知メールも集められるようにしなければ。最近、GMAILGoogle Appsに頼ってメールサーバを立ててなかったけど、やっぱりあるといろいろ便利ですね。