使用 gmail 从命令行发送带有图像附件的邮件的最简单方法?

使用 gmail 从命令行发送带有图像附件的邮件的最简单方法?

在上一篇文章的基础上,要求 cron 作业通过单个命令行发送状态消息,如下所示:

使用 gmail 通过命令行发送单行邮件的最简单方法?

问题是如何使用一行来发送附件文件。

设想:

cron 作业生成输出文件,如下所示:

cd /home/pi/python
gnuplot plt12

程序文件plt12包含以下两行:

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

这是在 Rpi3B 系统上完成的,该系统通过 USB 连接到 Nano,用于进行数据记录的 ADC。

所以,问题是,使用单个命令行通过 gmail 发送绘图文件图像的最简单方法是什么?

答案1

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

与每个 shell 代码一样,如果您愿意,您可以随时将其放在一行中,但这对可读性没有帮助:

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]

答案2

根据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
[email protected]
AuthPass=testing123
UseTLS=YES

发送这样一行行:

echo "Testing...1...2...3" | ssmtp [email protected]

一旦该部分完成,那么用一行发送附件同样简单。

首先,安装mpack

sudo apt-get update
sudo apt-get install mpack

然后,按照将文件 pl12.png 发送给用户的场景[电子邮件受保护],它是通过以下单个命令行完成的:

mpack -s "12-Volt Battery Pack plot" /home/pi/python/pl12.png [email protected]

如果文件位于当前目录中,则无需使用完全限定路径。

cron作业始终在用户的主目录中运行,因此使用附件文件的完整目录路径始终是一个好习惯。


相关内容