スキップしてメイン コンテンツに移動

Linux(Raspberry pi)で G-Mail を送信させる。

こちらの情報は古くなったので、改訂版の方をご参照雨ください。

まだまだ続く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: コマンドが見つかりません

となればインストールが必要。

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 を使用する」なんて情報から設定をしてみたり。
でも今の所解決方法が見つかっていません。
 誰か、解決策を知らないかな?

コメント

このブログの人気の投稿

iPhone を日常使う上での注意(ちょっとした不具合を解消するには)リセットの仕方

先日はバックアップの重要性について書きましたが、今日は日常の注意を書いて見たいと思います。
まずは充電の方法から。 皆さん、充電時にはどんなことに注意していますか?
充電は、できるだけバッテリーを使い切るぐらいまで行わず、できれば80〜90%で終了させましょう・・・・なんてやっていませんか?
以前にも充電について書きましたが、基本的には「気にする事は無い!」です。
好きな時に充電をし、好きな時に終えれば良いです。
上記の注意は「ニッケル系」のバッテリー、つまり市販の単三型などの充電式バッテリーについての注意です。昔はニッケルカドミウム、今ではニッケル水素のバッテリーですね。
これは、時々リフレッシュさせる必要があります(昔の人工衛星も年に2回ほどリフレッシュ運用というものを行っていました)。
しかし、現在携帯電話に使用しているリチウムイオン系のバッテリーでは其の様な事は必要ありません。
と言うより、ニッケル系の様なリフレッシュ運用はかえってバッテリーの寿命を縮める(充放電回数を無意味に増やす)だけです。
バッテリー一般の注意である、充電中に熱を持たない様に注意する(寝る時に布団や枕に覆われた状態で充電するなど)こと、電子機器一般の注意である日向や暖房機の前に放置しない、などを守れば十分です。
何故かは良く分かりませんが、昔の iOS では充電時のマークが、稲妻マーク(充電中)とプラグマーク(充電器に接続されているが充電はされていない:充電は終了している)に分かれていました。
今は同じ稲妻マークだけですが、ひょっとしたらプラグマークになるとあわてて充電器から外そうとする人がいるのを懸念しての仕様変更かもしれません。
基本的に「充電器に接続されている」「Wi-Fi に接続されている」「スリープ状態にある」という三つの条件を満たしていれば、1日に一回「iCloud による自動バックアップ」が実行されます。
一番条件の揃いやすいのは就寝時ですよね?
つまり少なくとも寝る前に充電を開始して、朝まで放置しましょうというのがアップルの考え方。その間にバックアップしておきますよという事ですね。

さてその寝る前にあなたは何かしていますか? 私はほぼ毎日、寝る前には動作しているアプリを全て終了させています。
「何のため?」それは
「メモリを解放するため」です。 メモリを解放するアプリ…

Apple ID の変更方法

2017/06/10 :追記

Apple ID の変更方法が変更されました。
以下の最新情報をご確認下さい。

アップルIDの変更

Apple ID をキャリアのメールアドレスなどで作成し、その後にキャリアのメールアドレスを変更してしまい、困っている方が多い様です。
皆さん Apple ID に利用しているメールアドレスを変更すれば、iPhone に使用している Apple ID のメールアドレスも自動的に変更されるものと、勘違いしている様に思います。

また、Apple ID はキャリアのものと勘違いしているのか、キャリアを変更したのだから、Apple ID もそのまま、次のキャリアメールのアドレスになると思っている方も、おられるようです。

Apple ID はあくまでもAppleが発行するIDです。
キャリアとは無関係で、キャリアにそのIDに関する情報が渡ることもありませんし、キャリアの情報がAppleに渡ることもありません。

IDに使用するメールアドレスを変更したいのであれば、自分でAppleのウェブサイトで手続きする必要があります。

https://appleid.apple.com/ja_JP

にアクセスすると、「Apple ID を管理」というボタンがあります。
そこで、現在の(あるいは勝手に変更してしまう以前の)メールアドレスでログインし、手続きをします。
ここで、新しく利用したいメールアドレスを追加すると、本人確認のメールがそのメールに届くので、メールに記載されているURLにアクセスすると、承認されます。
メールアドレスが承認されると、そのメールアドレスをIDに登録し直せます。

最終的にIDのメールアドレス変更直前に、iPhone(該当 iOS 機器やMac 全て)の iCloud と iTunes & App Store から一度ログアウトしてください。
その際に、iPhone にデータを残す必要はありません。
新しいメールアドレスの ID でログインすればまた同期されてデータが戻ります。
残してしまうと、再同期の際に間違ってマージしてしまい、データが二重登録される可能性があります。
もっとも再同期の際に間違えて、iPhone の(何もない)データで、iCloud を上書きすると、全てのデータが失われるので、それよりはマシですけど。

なお、使用…

スマホの充電

今までも時々充電に関する話を書いておりますが、仕事の関係でちょっと調べ物をしていて、そのまま横道に逸れて(内緒ね)人工衛星のバッテリー設計の話をちょこっと摘んできました。
その中で、「放電深度」の話があって、ちょっと面白いので簡単に紹介しようと思います。

新品のリチウムイオンバッテリーがあるとしてその容量を分かりやすく1000mA/h とします。
100%充電されていたとして、そのバッテリーから1000mAの電気を取り出した時が100%、
500mAだけ取り出した時は 50% 、そして300mAしか取り出さなければ 30% を「放電深度」と言います。
よく言われるのは「 80% から 20% まで使って、また 80% まで充電するのが最も良い」と言うものですが、これは前のブログで間違っているよと言いました。
80% から 20% ならば 0.6 回利用した計算だよと。
で、最終的に何回充電出来るかは決まっていると書いたのですが、これが間違っていました。
これが放電深度100%では最も回数が少なく、放電深度を50%に(つまり 100% から 50% の間で充放電を繰り返す)と回数的には3倍以上の回数、つまり寿命が3倍以上になるとの報告などがあります。
さらに 30% に抑えるとさらに伸びます。

色々調べるとそれが当たり前の様です。
静止衛星の場合でも1日に一回充放電を繰り返すわけですが、周回の人口衛星だと1日に数回地球を回るので、充電期間(昼間上空を通過する時)と放電期間(夜間上空を通過する時)が1日に数回あるわけです。
そんな中で設計時の放電深度は25%程度で設計されている様です。 つまり、放電期間を終了して充電開始時に 75% 以上あって、充電期間を終了する時には100% まで充電されている。 もちろんその間地球観測の観測機械がフル稼働(特に光学観測の場合は昼間が観測時間帯です)してますから、もろに充電しながら使っている状態です。
スマホで「バッテリーが 75%に減ったら、即充電器に繋いで充電しながら使う」って言ったら「バカか! バッテリーがダメになるぞ」って脅されますよね。
でも人工衛星ではそれが常識みたい。 むしろバッテリーを少しでも長持ちさせるためにはその様にすべきの様です。
確かに「過充電」は良くないみたいで、そのための「シャント抵抗」なんてのがあって、…

「iCloud では全てがバックアップ出来ない」という大誤解

iOS デバイスのバックアップについて

ということで以下にアップルの公式サイトがあります。

https://support.apple.com/ja-jp/HT204136

ここには
【iTunes バックアップでは、デバイスのほぼすべてのデータと設定情報がバックアップされます。】

【iCloud バックアップでは、デバイスに保存されているほぼすべてのデータと設定情報がバックアップされます。】

と書かれてます。

「デバイスのほぼすべてのデータ」と「デバイスに保存されているほぼすべてのデータ」の違いはなんだろうってツッコミは置いておいて、その後ろにはバックアップの対象外となる物が並んでます。

iTunes では「iTunes から同期したコンテンツ (読み込んだ MP3 や CD、ビデオ、ブック、写真など)」が同期の対象外。

iCloud では「ほかのクラウドサービス (Gmail、Exchange メールなど) で保管されているデータ」が対象外。

その他には、
「iTunes Store および App Store から入手したコンテンツ、または iBooks に直接ダウンロードした PDF (このコンテンツは iTunes で「購入した項目を転送」を使ってバックアップできます。)」
とか
「iCloud ミュージックライブラリおよび App Store のコンテンツ (すでに購入済みのコンテンツは、iTunes Store、App Store、または iBooks Store で取り扱い継続中であれば、タップして再ダウンロードできます。)」

とあって、微妙な表現の違いはありますが、まぁ実用上は同じと考えて良さそうですよね。

同期とバックアップ

どうも iPhone や iPod Touch 、 iPad などで iTunes や iCloud との同期設定をきちんと行わず、バックアップなども行っていない方が多く居られる様です。
また、同期やバックアップすると、メールの設定や連絡先などのデータが無くなる、とかいうデマに振り回され、怖がっている方も多い様です。
そこで出来るだけ簡単に、その必要性とやり方を、書いておこうと思います。


まずバックアップの必要性。 これは何も言う事は無いはずです。
万が一 iPhone が故障したり、紛失したりした場合、このバックアップが無いと、全てのデータを失います。
バックアップが有れば、新しい iPhone でも、バックアップ時点の状態に戻せます。
バージョンアップ時も同じですし、新型への機種変の時も同じです。
バックアップが無ければ、初期状態から設定し直さなければいけません。
しかしバックアップを取った後に、受信したMMSメールや写真は、失います。
なので、出来るだけこまめにバックアップをする必要があります。
理想的には毎日行うことです。

次に同期。CDから iTunes に入れた音楽、逆に iPhone で購入した音楽、アプリなどは同期作業によって iPhone に入れたり iTunes にバックアップしたりします。
写真や動画なども同じです。
好きなものを持ち歩いたりするのであれば、同期は必要ですね。
同期の作業は、その始めのステップとして、バックアップを行いますから、バックアップのためにも、必要な作業となります。


現在は iCloud のサービスもあり、同期も重要項目です。
同期とは二つ以上のものを、同じ状態に保つ作業です。
現在の iPhone であれば、iCloud をその同期の中心にし、個々の機械(パソコンや iPhone )が同期を取ります。

iCloud は常に最新の状態が保たれます。
必要であれば、パソコンから iCloud のウェブサイトにアクセスして、利用することもできます。
しかしなぜか、iOS 機器からは、通常の iCloud のウェブ利用はできません。

連絡先などは、iCloud を利用する事で、グループ分けなどが簡単に出来ます。
こちらもなぜか iOS 上では、グループ分けの作業は出来ないのですが、iCloud で行ったグループ分けは利用出来ます。
ウェブサイト上で…