Email

使用gmail從命令行發送帶有圖像附件的郵件的最簡單方法?

  • June 10, 2018

在上一篇文章的基礎上,要求 cron 作業通過單個命令行發送狀態消息,如下所示:

使用gmail通過命令行發送單行郵件的最簡單方法?

關於如何使用單行發送附件文件的問題出現了。

設想:

cron 作業生成輸出文件,如下所示:

cd /home/pi/python
gnuplot plt12

程序文件 plt12 包括以下兩行:

set output "pl12.png"
set terminal png font "arial,11"

這是在通過 USB 連接到 Nano 的 Rpi3B 系統上完成的,用於進行數據記錄的 ADC。

那麼,問題是,使用單個命令行通過 gmail 發送該繪圖文件圖像的最簡單方法是什麼?

根據 OP 中引用的上一個問題,使用單個命令行發送消息的最簡單方法如下:

使用gmail通過命令行發送單行郵件的最簡單方法?


摘抄:

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

引用自:https://unix.stackexchange.com/questions/381131