ここに投稿されているように、要件がcronジョブに単一のコマンドラインを介してステータスメッセージを送信することであるという以前の投稿を基にしています。
Gmailを使用してコマンドラインから1行のメールを送信する最も簡単な方法?
単一行を使用して添付ファイルを送信する方法に関する質問がありました。
シナリオ:
cronジョブは次のように出力ファイルを生成します。
cd /home/pi/python
gnuplot plt12
プログラムファイルplt12には、次の2行が含まれています。
set output "pl12.png"
set terminal png font "arial,11"
これは、データロギングを行うADCのNanoにUSB経由で接続されたRpi3Bシステムで行われています。
では、問題は、1つのコマンドラインを使用して、Gmail経由でそのプロットファイルの画像を送信する最も簡単な方法は何ですか?
OPで参照されている前の質問に基づいて、単一のコマンドラインでメッセージを送信する最も簡単な方法は次のようになります。
Gmailを使用してコマンドラインから1行のメールを送信する最も簡単な方法?
抜粋:
次のコマンドを使用してssmtp
をインストールします。
Sudo apt-get update
Sudo apt-get install ssmtp
次に、/ etc/ssmtpに移動し、ssmtp.confを次のように編集します。
root=rpi3abc@gmail
mailhub=smtp.gmail.com:465
FromLineOverride=YES
[email protected]
AuthPass=testing123
UseTLS=YES
次のようにワンライナーを送信します。
echo "Testing...1...2...3" | ssmtp [email protected]
その部分が完了したら、1行の添付ファイルを送信するのも同じくらい簡単です。
まず、mpack
をインストールします。
Sudo apt-get update
Sudo apt-get install mpack
次に、ファイルpl12.pngをユーザー[email protected]に送信するシナリオに従って、次の単一のコマンドラインで実行します。
mpack -s "12-Volt Battery Pack plot" /home/pi/python/pl12.png [email protected]
ファイルが現在のディレクトリにある場合、完全修飾パスを使用する必要はありません。
cron
ジョブは常にユーザーのホームディレクトリで実行されるため、添付ファイルへの完全なディレクトリパスを使用することを常にお勧めします。
mutt
の場合:
SMTP_URL='smtps://user:[email protected]' mutt \
-F /dev/null \
-e 'set from="Me <[email protected]>"' \
-e 'set smtp_url=$SMTP_URL' \
-s 'pl12.png file' \
-a pl12.png -- \
[email protected] << EOM
Hi,
see pl12.png attached.
--
Me
EOM
すべてのシェルコードと同様に、読みやすさを向上させることはできませんが、気になる場合はいつでも1行に配置できます。
printf 'Hi,\n\nsee pl12.png attached\n\n-- \nMe\n' | SMTP_URL='smtps://user:[email protected]' mutt -F /dev/null -e 'set from="Me <[email protected]>"' -e 'set smtp_url=$SMTP_URL' -s 'pl12.png file' -a pl12.png -- [email protected]