こちらの情報は古くなったので、改訂版の方をご参照雨ください。
まだまだ続くRaspberryネタです(笑)
運用を始めると、システムが出すちょっとしたメッセージが root や管理用のユーザに届く事があります。
で、その確認のために毎日ログインするのは面倒。
となれば、当然その手のメッセージが自動で手元に届いて欲しいわけです。
つまりEメールで送信させたいとなります。
Linux を使用していれば、メール機能があるのは当然のことですが、同時にそれが特別な設定をしないと自分のサーバ内でしか届かないのも当然のこと。
で、普通はちょっと面倒な設定をすることになりますが、今時メールの受信はしないで送信というだけならば、G-Mail 辺りのメールアドレスを利用して簡単に設定できるということでしたので、挑戦してみました。
で、未だに未解決の部分もありますが、一応その手順などを公開します。
1。まずは、自分のシステムがメールに対応しているか確認しておきましょう。
って、実は3月にリリースされたばかりの最新の Raspbian jessie をインストールする際にGUI環境は要らんだろうという事で Jessie Light 2017-03-02-raspbian-jessie-lite.img)をインストールしました。
そうしたら Mail 関連のアプリが全くインストールされていなかったんです。
という事で自分の状況が分からなければ、mail コマンドを叩いてみましょう。
$ mail
-bash: mail: コマンドが見つかりません
となればインストールが必要。
まだまだ続くRaspberryネタです(笑)
運用を始めると、システムが出すちょっとしたメッセージが root や管理用のユーザに届く事があります。
で、その確認のために毎日ログインするのは面倒。
となれば、当然その手のメッセージが自動で手元に届いて欲しいわけです。
つまりEメールで送信させたいとなります。
Linux を使用していれば、メール機能があるのは当然のことですが、同時にそれが特別な設定をしないと自分のサーバ内でしか届かないのも当然のこと。
で、普通はちょっと面倒な設定をすることになりますが、今時メールの受信はしないで送信というだけならば、G-Mail 辺りのメールアドレスを利用して簡単に設定できるということでしたので、挑戦してみました。
で、未だに未解決の部分もありますが、一応その手順などを公開します。
1。まずは、自分のシステムがメールに対応しているか確認しておきましょう。
って、実は3月にリリースされたばかりの最新の Raspbian jessie をインストールする際にGUI環境は要らんだろうという事で Jessie Light 2017-03-02-raspbian-jessie-lite.img)をインストールしました。
そうしたら Mail 関連のアプリが全くインストールされていなかったんです。
という事で自分の状況が分からなければ、mail コマンドを叩いてみましょう。
-bash: mail: コマンドが見つかりません
となればインストールが必要。
2。mail のインストール(必要ならばですけど)
と、その前にいつものことですが、
$ sudo apt-get update
$ sudo apt-get upgrade
は済ませておきましょうね。
ではメールのインストール
$ sudo apt-get install mailutils
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
以下の追加パッケージがインストールされます:
guile-2.0-libs libgc1c2 libgsasl7 libkyotocabinet16 liblzo2-2 libmailutils4 libmysqlclient18 libntlm0 libunistring0
mailutils-common mysql-common
提案パッケージ:
mailutils-mh mailutils-doc
以下のパッケージが新たにインストールされます:
guile-2.0-libs libgc1c2 libgsasl7 libkyotocabinet16 liblzo2-2 libmailutils4 libmysqlclient18 libntlm0 libunistring0
mailutils mailutils-common mysql-common
アップグレード: 0 個、新規インストール: 12 個、削除: 0 個、保留: 0 個。
5,662 kB のアーカイブを取得する必要があります。
この操作後に追加で 22.6 MB のディスク容量が消費されます。
続行しますか? [Y/n] Y
取得:1 http://mirrordirector.raspbian.org/raspbian/ jessie/main libgc1c2 armhf 1:7.2d-6.4 [122 kB]
取得:2 http://mirrordirector.raspbian.org/raspbian/ jessie/main libunistring0 armhf 0.9.3-5.2 [253 kB]
取得:3 http://mirrordirector.raspbian.org/raspbian/ jessie/main guile-2.0-libs armhf 2.0.11+1-9 [2,162 kB]
取得:4 http://mirrordirector.raspbian.org/raspbian/ jessie/main liblzo2-2 armhf 2.08-1.2 [47.6 kB]
・
・
・
・
libc-bin (2.19-18+deb8u7) のトリガを処理しています ...
$
でインストール終了。
ついでに設定もしておきましょう。
一応 ssmtp では使用していないことにじゃなっている様ですが、念のため。
$ sudo nano /etc/aliases
# /etc/aliases
mailer-daemon: postmaster
postmaster: root
nobody: root
hostmaster: root
usenet: root
news: root
webmaster: root
www: root
ftp: root
abuse: root
noc: root
security: root
root: yourID ← あなたが使用しているユーザIDを追記
$
$
これでテストをしてみます。
$ date | mail -s "Test" root
あなたが利用している ID にメールが届けば OK
3。送信用のメールを取得しましょう。
既に Google のメールをお持ちでそれを利用する方もアプリ用のパスワードを取得しておく必要があります。
G-Mail の取得方は見ればわかるレベルですので割愛します。
アプリ用のパスワードは、G-Mail にログインしてアカウント情報から「ログインとセキュリティ」を選択します。
そして右下の「アプリパスワード」に進みます。
で、「生成」ボタンを押すと、
となって、アプリ用のパスワードが生成されるので、これをひとまずメモしておきます。
この後の設定で使用します。
4。sSMTP のインストール(これがインターネットにメールを送信してくれます)
いよいよメール送信用の ssmtp をインストールします。
$ sudo apt-get install ssmtp
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
以下のパッケージが新たにインストールされます:
ssmtp
アップグレード: 0 個、新規インストール: 1 個、削除: 0 個、保留: 0 個。
54.2 kB のアーカイブを取得する必要があります。
この操作後に追加で 1,024 B のディスク容量が消費されます。
取得:1 http://mirrordirector.raspbian.org/raspbian/ jessie/main ssmtp armhf 2.64-8 [54.2 kB]
54.2 kB を 1秒 で取得しました (27.4 kB/s)
パッケージを事前設定しています ...
以前に未選択のパッケージ ssmtp を選択しています。
(データベースを読み込んでいます ... 現在 48754 個のファイルとディレクトリがインストールされています。)
.../ssmtp_2.64-8_armhf.deb を展開する準備をしています ...
ssmtp (2.64-8) を展開しています...
man-db (2.7.0.2-5) のトリガを処理しています ...
ssmtp (2.64-8) を設定しています ...
$
5。smtp.conf の設定
$ sudo nano /etc/ssmtp/ssmtp.conf
#
# Config file for sSMTP sendmail
#
# The person who gets all mail for userids < 1000
# Make this empty to disable rewriting.
#root=postmaster ← コメントアウトします。
root=nao-san@gmail.com ← メールアドレスを追記します
# The place where the mail goes. The actual machine name is required no
# MX records are consulted. Commonly mailhosts are named mail.domain.com
#mailhub=mail ← コメントアウトします。
mailhub=smtp.gmail.com:587 ← メールサーバーを追記します
AuthUser=nao-san@gmail.com ← 送信用のメールアドレスを追記します
AuthPass=abcdefghijkl ← G-Mail のアプリパスワードを追記します。
UseSTARTTLS=YES ← 追記します
# Where will the mail seem to come from?
#rewriteDomain=
# The full hostname
hostname=YourHostName ← 勝手に /etc/hostname から書いてくれるみたい。
# Are users allowed to set their own From: address?
# YES - Allow the user to specify their own From: address
# NO - Use the system generated From: address
#FromLineOverride=YES
$
6。最後にテストメールを送信してみます。
もちろんメールアドレスの部分はご自分のメールアドレスを指定してください。
どこのメールアドレスでも大丈夫です。
$ date | mail -s "Test" nao-san@gmail.com
7。最後に未だ解決できていない問題点を。
送信用に指定したメールアドレスから、指定したメールアドレスへは問題なく送信できますから、シェルスクリプトの中などで通知先を指定してメールすれば問題なく通知できます。
IFTTT などに登録したメールアドレスで設定しておけば、IFTTT にメールすることで、iPhone の画面にプッシュで通知を表示することも可能です。
じゃあ何が問題かというと、システムが吐き出す root や自分の ID へのローカルのメールまで、そのまま xxxx@YourHostName で外部へ送信してしまうことで、当然その様なドメインは無いので配信エラーとなってしまうことです。
配信エラーの通知が自分の送信用の G-Mail に戻ってくるので、通知があったことはわかるのですが、本来の形じゃ無いですからね。
/etc/aliases で、自分の ID のメールに対して転送先の G-Mail のアドレスを指定したり、/etc/ssmtp/ssmtp.conf に root の転送先を書いたり、「sSMTP は /etc/aliases の代わりに、 /etc/ssmtp/revaliases を使用する」なんて情報から設定をしてみたり。
でも今の所解決方法が見つかっていません。
誰か、解決策を知らないかな?
コメント
コメントを投稿