Raspberry Pi | 撮った写真をgmailで送るための設定(sSMTPとMutt)
こんにちは、tapunです。
前回はRaspberry Piのカメラモジュールを使って写真を撮影する方法をお伝えしました。
でも、写真を撮ってもRaspberry Piのローカルに保存しっぱなしでは意味がないですよね?
今日は、Raspberry PiからGmailを使ってメールを送るための設定をご紹介します。
私は普段Raspberry Piで撮影した写真をGmailに添付して自分に送ったりしています!
どうやってメールを送るの?
一般的にLinuxマシンからメールを送る方法といえば、sendmailやPostfixのようなMTAをインストールする方法が多いかと思いますが、設定が面倒だしセキュリティのことも考えないといけないし~、、で面倒なので、今回は色々調べた結果、別の方法をとる事にしました。
sSMTPというシンプルなMTA(実際にはISPのMTAに接続する感じ)を使うことにしました!
Postfixなどと比べると設定が非常に簡単で、リモートのSMTPサーバ、認証情報(ユーザー名とパスワード)、送信メールに表示する送信元ドメインなどをメールクライアントと似た感じで設定するだけでOKです!
sSMTPのインストール
- sSMTPをインストールします。
$ sudo apt-get install -y ssmtp
- インストールが完了したら,/etc/ssmtp/ssmtp.conf を開きます。
$ vi /etc/ssmtp/ssmtp.conf
- リモートで使うSMTP サーバの設定を入れます。
今回はGmailのメールサーバを使いますので、「root」と「mailhub」の部分を下記のように編集します。root=*****@gmail.com ←自分のメールアドレス mailhub=smtp.gmail.com:587 ←SMTPサーバのアドレス
- 同じ設定ファイルに、GmailのSMTP サーバにアクセスするための認証情報を追記します。
AuthUser=*****@gmail.com ←自分のメールアドレス AuthPass=password ←Gmailのパスワード※ UseSTARTTLS=YES ←メールの暗号化設定、Gmailを使う場合はYES。
注意!
Gmail の二段階認証をオンにしている場合は、こちらからアプリパスワードを発行して、それを password のところにコピペしましょう。
参考:Googleのヘルプページ:https://support.google.com/mail/answer/185833?hl=jaこれでsSMTPの設定は完了です。
mailコマンドをインストール
メールを送るためのコマンド”mail”を使えるようにするために、”mailutils”をインストールします。
$ sudo apt-get install -y mailutils
メール送信テスト
メール送信テストをしましょう。
送り先はケータイでなくても何でもオッケーです。
$ mail XXX@i.softbank.jp Cc: Subject:This is test hello, this is test mail from raspberry pi. (本文を書き終えたら、"Ctrl + d" を押します:EOT)
無事にメールが届いたら、単純なメールの送信をする設定は完了です!
写真を添付するのはどうやるの?
実はこのsSMTPは機能がシンプルが故に、添付ファイルを付けられません!
なのでこのままでは写真を送ることが出来ません。
そもそもラズパイで撮影した写真を送るためにメールの設定もしているので、ネットで色々調べた結果、MuttというメールクライアントソフトをsSMTPと組み合わせることで添付ファイル付メールの送信ができそうだったので、やってみました!
# ちなみにmuttだけではメールの送信ができませんので、メールサーバと組み合わせる必要があります。
Muttのインストールと添付ファイルの送信
- Muttをインストールします
$ sudo apt-get install -y mutt
- ユーザユーザフォルダにあるMuttの設定ファイル(.muttrc)を編集します。
$ vi $HOME/.muttrc
set sendmail="/usr/sbin/ssmtp" # smtpクライアント。今回はsSMTPを指定。 set realname="Report sender" # メールの差出人名 set from="XXXX@host.jp" # 受信者のメールクライアントで「From:」に表示させるメールアドレス
※他のブログだとsendmail=”/usr/local/sbin/ssmtp”と記載があったりしましたが、その設定だと私はメール送信に失敗したので色々試した結果、上記の設定に落ち着きました。
muttコマンドで添付ファイルをつけてメールを送信してみます
- 下記のコマンドでメールを送信します。
$ mutt -s "Subject" "送信先アドレス" -c "CCアドレス" -a "添付ファイルのフルパス" < "本文のtxtファイルのパス"
※上記の例では、あらかじめ、/home/tapun/photo_message.txtというファイルを作って、そこにメール本文を記載しておく必要があります。
- コマンドを実行すると、添付ファイル付のメールが送られます!
まとめ
今回は、Raspberry PiにsSMTPとMuttというソフトウェアを入れてGmailのメールサーバを使う設定をしたことで、コマンドを使って写真をGmail経由で送ることが出来るようになりました。
次回は、写真撮影とメール送信を自動で定期的に実行するためのクーロン設定についてご紹介しようと思います!:)
おやすみなさい!
有用な情報をありがとうございます。添付ファイルを送ることはできるようになったのですが、コマンド実行後に「GPGME: CMS protocol not available」とメッセージが出てしまいます。解決策をご教授いただくことは可能でしょうか?(それとも気にする必要のないメッセージでしたでしょうか)
だにえるさん、確認が遅くなってしまって申し訳ございませんでした!
頂いたご質問ですが、エラー文言で検索してみると、GMGMEのバグのようです。
https://github.com/neomutt/neomutt/issues/398
今現在Raspiをこの記事の形で動かしていないため実機で確認できないのですが、こちらを参考にGPGMEを向こうに設定すればwarningは消えるかもしれません〜!
大変参考になりました。
ここを参考に、無事ラズパイで撮影した写真をgmailに連携することができました。
> 他のブログだとsendmail=”/usr/local/sbin/ssmtp”と記載があったりしましたが
/usr/local 以下になるのは一般的に、自力でプログラムをビルドしてインストールした場合です。
apt(パッケージマネージャ)でリポジトリからインストールしたのであれば、 実行ファイルは主に、
/usr/bin か /usr/sbin か /bin か /sbin にインストールされます。
$ which ssmtp
で実行ファイルのパスを調べることも可能ですし、
$ dpkg -L ssmtp
をすると、ssmtp パッケージでインストールされるファイルの一覧が出ます。