Raspberryでメールを受信する(その1)


外出先からRaspberryを操作できたら便利だなと思うことが時々あります。
自宅にWEBサーバを構築して、出先から自宅WEBサーバにアクセスして....とかの方法も考えられますが、
DNSやセキュリティの設定も必要になるので、一番簡単と思われる出先からのメールによりRaspberryを操作できるようにします。
イメージを以下に示します。



@スマホや携帯から自宅宛にメールを送ります。
A自宅のRaspberryがメールを受信して、メールのタイトルに応じたコマンドを実行します。

ソースはこちらからダウンロードしてください。
結構大きいので、tar.gz で圧縮しています。
ソースをダウンロードしたら、以下の手順でコンパイルしてください。
$ tar xvfz biff.tar.gz
$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get install libssl-dev
$ cc -o biff biff.c -lcrypto -lssl

次にMIMEデコードに使用する「nkf」をインストールします。
こちらのページ を参考にインストールしてください。
以下のコマンドで正しくインストールできたことを確認できます。
$ nkf --version
Network Kanji Filter Version 2.1.3 (2013-11-22)
Copyright (C) 1987, FUJITSU LTD. (I.Ichikawa).
Copyright (C) 1996-2013, The nkf Project.

最後に設定ファイル(configファイル)を作成します。
設定ファイルのファイル名は何でもいいですが、ここでは「config.ini」 として説明します。

【プロバイダーのメールアカウントを使う場合】
$ cat config.ini
HOST=mail.biglobe.ne.jp
USER=hoge@biglobe.ne.jp
PASS=hogehoge

HOST=
  プロバイダが指定したPOPサーバのアドレス
USER=
  プロバイダが指定したPOPアカウント
PASS=
  プロバイダが指定したPOPアカウントのパスワード

【yahooのメールアドレスを使う場合】
$ cat config.ini
HOST=pop.mail.yahoo.co.jp
USER=hoge
PASS=hogehoge

HOST=
  pop.mail.yahoo.co.jp
USER=
  yahooのアカウント(ログ インID)
PASS=
  yahooのパスワード

【gmailのメールアドレスを使う場合】
$ cat config.ini
SSL=ON
HOST=pop.gmail.com
USER=hoge
PASS=hogehoge

HOST=
  pop.gmail.com
USER=
  gmailのアカウント(ログ インID)
PASS=
  gmailのパスワード

※gmailのメールアドレスを使う場合、セキュリティの設定変更が必要です。
こ ちらを参照してください

configファイルができたら、設定が正しいかどうかテストします。
2014年11月時点でodn、biglobe、yahoo、gmailの環境で動作を確認しています。

$ ./biff ./config.ini TEST
config.port=XXX
config.host=XXXXXX
config.user=XXXXXXXXXX
config.pass=hogehoge
nkf....OK
Network Kanji Filter Version 2.1.3 (2013-11-22)
Copyright (C) 1987, FUJITSU LTD. (I.Ichikawa).
Copyright (C) 1996-2013, The nkf Project.
gethostbyname....OK
socket....OK
connect....OK
USER....OK
PASS....OK
LIST....OK(number of mail=0)
All test is OK!!

上記が表示されたら設定はOKです。
途中でエラーが出たら設定ファイルの内容を見直してください。
どうやっても動かないときはgmailのアカウントをGetしてください。(ただです)

これ以降「USER=」で指定したメールアカウントを「Raspberry君」と呼びます。

続く...