Email
使用gmail從命令行發送帶有圖像附件的郵件的最簡單方法?
在上一篇文章的基礎上,要求 cron 作業通過單個命令行發送狀態消息,如下所示:
關於如何使用單行發送附件文件的問題出現了。
設想:
cron 作業生成輸出文件,如下所示:
cd /home/pi/python gnuplot plt12
程序文件 plt12 包括以下兩行:
set output "pl12.png" set terminal png font "arial,11"
這是在通過 USB 連接到 Nano 的 Rpi3B 系統上完成的,用於進行數據記錄的 ADC。
那麼,問題是,使用單個命令行通過 gmail 發送該繪圖文件圖像的最簡單方法是什麼?
根據 OP 中引用的上一個問題,使用單個命令行發送消息的最簡單方法如下:
摘抄:
ssmtp
使用以下命令安裝:sudo apt-get update sudo apt-get install ssmtp
然後進入 /etc/ssmtp 並編輯 ssmtp.conf 使其看起來像這樣:
root=rpi3abc@gmail mailhub=smtp.gmail.com:465 FromLineOverride=YES AuthUser=rpi3abc@gmail.com AuthPass=testing123 UseTLS=YES
像這樣發送單行:
echo "Testing...1...2...3" | ssmtp myusername@gmail.com
一旦該部分完成,那麼用一行發送附件同樣簡單。
首先,安裝
mpack
:sudo apt-get update sudo apt-get install mpack
然後,按照將文件 pl12.png 發送給使用者 abc@def.com 的場景,使用以下單個命令行完成:
mpack -s "12-Volt Battery Pack plot" /home/pi/python/pl12.png abd@def.com
如果文件在目前目錄中,則不必使用標準路徑。
cron
作業始終在使用者的主目錄中執行,因此最好使用附件文件的完整目錄路徑。
與
mutt
:SMTP_URL='smtps://user:password@smtp.gmail.com' mutt \ -F /dev/null \ -e 'set from="Me <user@gmail.com>"' \ -e 'set smtp_url=$SMTP_URL' \ -s 'pl12.png file' \ -a pl12.png -- \ someone@example.com << EOM Hi, see pl12.png attached. -- Me EOM
像每個 shell 程式碼一樣,如果你喜歡的話,你總是可以把它放在一行上,儘管這對易讀性沒有幫助:
printf 'Hi,\n\nsee pl12.png attached\n\n-- \nMe\n' | SMTP_URL='smtps://user:password@smtp.gmail.com' mutt -F /dev/null -e 'set from="Me <user@gmail.com>"' -e 'set smtp_url=$SMTP_URL' -s 'pl12.png file' -a pl12.png -- someone@example.com