2024年04月05日
_ [computer] RaspberryPi での温度計測:E_Mail送信を、outlookに変更
温度計測と、Mailで管理レポートを送らせているラズパイですが、先日そこで利用しているGmailのアカウントにログインしようとしたら、いきなり、アカウント回復手続きになってしまっていました。
ログインまでの期間が長かったからか?、とも思いましたが、よく考えればこの間アプリケーションパスワードを作成するためにログインしています。とにかく、24時間後にアカウント回復手続きにはいる由で、その通り丁度一日後にmailが来て、記載通りの手続きでアカウントは復帰した様でした。
ただそれ以降、レポートのMailが来ていない事に気がつき、アカウントを確認してみると2段階認証がオフにされていました。アプリケーションパスワードは2段階認証になっていないと発行されない様になっていますので、2段階認証に変更しアプリケーションパスを再び取ろうとしましたが、、どうしてもアプリケーションパスワード設定の画面が出てきません。
ログインし直したり、時間を置いたりしても、出てくるはずの所に出てこないのでどうしようも有りません。だいたい、急にログインできなくなって、アカウント回復手続きに入る事自体が、ちょっとイレギュラーなので、何かあったらしいとしか分かりません。(一応、問い合わせのメッセージを入れたけど、返事は期待出来なさそう、です)
Gmailで別のアカウントを取り直すとかも考えましたが、Gmailは色々面倒事が多いので、1日に数回メールするだけだし、もう他のサーバーで良いのでは、と思いました。無料でかつ品質は保証されているので、非常に多くに人が使っているGmailなので、次第にこんな感じでサービスも少しは絞りたいところでしょう。最近は2年ほどログイン無ければ失効するらしいですが、想像ですが、今までアカウント解放もあまりやってない感じなので、まともなアカウント名は既に殆ど取れなくなっていますし。
と言う訳で、試しに無料のsmtpサーバを検索して見ました。色々見た所、出てくる大概の所は、mailを送るマネージメントがメインで「まずは無料枠から、始めてみましょう」って感じなので、避ける事にしました(使ってみても面白そうですが)。私は、日に数通程の使用なので、やはりGmailの様なフリーメールのsmtpサーバを利用するので良さそうです。
幾つもあるフリーメールを色々検討しまして、結局outlookを使う事にしました。MSアカウントとして既に取っているのですが(現状ほぼ使っていないけど)、それとは別にMail送信専用として新規にアカウントを取りまして、こちらを利用する事にしました。
そこで改めて検索してみると、「outlookでmailを送るpythonプログラム」の記事が見つかりました。概ねそれまでのGmailの場合と同じで、"smtplib"の利用ですが、やはりとても有難いです。そのサンプルプログラムほぼそのままで、Windowsの環境で走らせてみましたが、最初は接続エラーでした(元は数年前の情報なので)。そこで、smtpサーバー名を某所でで見かけた"smtp.office365.com"に変更すると、問題なくmailが送れました。
これでもうOK、と思いきや、またしても報告の時間になってもMailが来ません。調べてみたら、該当のoutlookのアカウントが凍結されている様でした。早速ログインを試みて、アカウント凍結解除の手順を幾つか踏んで、一応現在は正常に戻りました。何かのセキュリティ基準に抵触したのかもしれませんが、詳しい理由は不明です。
2024年04月06日
_ [computer] RaspberryPi での温度計測:もう一方も結局OS入れ直し
この2月に、提供されているOS"Raspberry Pi OS lite legacy版(32bit)"に入れ直したラズパイは、昨日の様に、Mail送出のpythonプログラムを変える事で無事稼働していますが、もう一方の、古いOS(Raspbianとか呼んでいた)の方で、同じpythonプログラムを走らせてみたところ、"EmailMessage"のインポートが出来ずにエラーで止まってしまいました。EmailMessageは便利と言うだけで必須ではないので、使えないのならば、それで何とかなりますが、プログラムは同じで揃えたいです。
pythonのヴァージョンの問題でしょうが、OSが古いのでapt-getではpython3のバージョンアップも既に出来ませんでした。そこでpython3で10.1のソースを持ってきて、コンパイルしてみました。定番のconfigure, make, make installの3つの手順も、3時間弱かかりましたが無事終わり、pythonは最新バージョンになり"EmailMessage"のインポートも出来ましたが、次は"server.starttls()"の所で止まってしまいました。確か何かのサポートがない、とかのメッセージだったと思います。結局こちらの方のラズパイも、現行のOSに入れ直す事にしました。(最初からそうすれば良かった)
同じくRaspberry Pi OS lite のlegacy版(32bit)を選択しまして、カードに書き込み。立ち上げ後、固定IPアドレスに変更して、Teratarmでsshで接続。その後、SCPにて必要なプログラムを転送後展開。インストールされているpythonは3.8で、Mail発信のプログラムも問題無く動きました。
ただ、温度計測プログラムの動作を確認した所、ライブラリ不足で動きませんでした。改めてコンパイルしなおしても、"usb.h"が無いと言ってきました。前回はそんな事無かったのですが、理由は不明です。(温度計測のUSB機器を付けずにインストールしたからかなぁ)
仕方ないので、ネットで調べてみたところ、こういう場合は"apt-file"で探せとありました。apt-fileは標準で入っていないので、まずそのapt-fileをインストール。
sudo apt-get install apt-file
以下のコマンドで、アップデートしてから検索
apt-file update
sudo apt-file search usb.h
沢山出てきますが、"libusb-dev"がそれっぽいので、これをインストール
sudo apt install libusb-dev
これでmakeし直すと、ワーニングは出ましたが無事コンパイル終了しました。後は先の通り、テストの動作もOKだったので、一応復帰した筈、です。
、、って思っていたら、2台の内の一方からしかMailが届きません。来なかった方に繋げて、書き出したエラーログ見てみましたら、接続リミットに達した、とかのエラーでサーバーに接続できていませんでした。Mailを送るプログラムはCRONで起動していますが、2台とも同じ時間の設定なので、同時に接続しようとしたのでエラーになった模様(実際には少しずれてるはずですが、、Gmailの時には無かった事です)。片方を、5分遅くして再設定しました。
2024年04月27日
_ [computer] ターミナルソフトをWindowsTerminalにしました。
ラズパイや、HPが稼働しているLinuxに繋ぐターミナルソフトの定番は、昔からも今も、TeraTermだと思います。私も、昔からずっと使っています。
少し前から、WindowsTerminalと言うのを知りまして、Windows内での事柄には時折使いますが、ストアアプリなのが激しく気に入らなくて、sshで外の機器に繋ぐ用途には使っていませんでした。
ただこのWindpowsTerminalは公開での開発な様で、他のMSアプリの様な手前勝手なところが無くて(MS臭さが無いと言うか)、なかなか良いと思っています。このたび少し検索してみた所、ストアからでなくても、普通にアプリとしてインストール出来る様になっている様なので、早速githubの以下のURLから、zip形式のファイルをダウンロードしました。
https://github.com/microsoft/terminal/releases
展開したディレクトリの中に".portable"と言う空ファイルをつくれば、ポータブル版として動作するようです(unix風ですね)。その場合は、ディレクトリ内の"settings"に各設定が保存されます。ポータブルにしないときは"%LOCALAPPDATA%Microsoft\Windows Terminal"に保存される様です。
実際にsshで接続するには、PowerShellで"ssh"と打てば出来る様です(PowerShellはほぼ使わないので知りませんでした)。実際には新規に項目(プロファイルと言う様です)を作った方が便利なので、設定の項目から新しいプロファイルとしてPowerShellの複製を作り、コマンドラインの"powershell.exe"の後ろに、以下の様にコマンドを書き加えます。
....\powershell.exe -Command ssh (user-name)@(ip-address)
これで、キーを作成し接続してくれました。
---------------------------
追記:Linixサーバーを入れ替えた場合、以前のキーのままでは接続出来ないので、
>> ssh-keygen -R (ip-address)
で、一度古いキーを消してから、接続する必要があります。
見てみたら、scpもOKの様ですし、最近のPowerShellは、ここらのコマンドもlinuxのがそのまま通るんですね。
----------------------------
追記2:"Git for Windows"の中に"Git Bash"と言うのが有るのを知りました。(インストールはしてあるのに、良く知らなかった)
このGit Bashも、WindowsTerminalから起動できると便利なので、新しいプロファイルとして登録します。(Git for Windowsのインストール時のオプションとしても登録できる)
コマンドラインを
C:/Program Files/Git/bin/bash.exe -i -l
に設定し、アイコンも、
C:/Program Files/Git/mingw64/share/git/git-for-windows.ico
に設定。