如何通过 shell 脚本发送电子邮件时附加文件?

如何通过 shell 脚本发送电子邮件时附加文件?

我使用以下代码通过 shell 脚本发送电子邮件。

代码:mail -s "subject" [email protected] <<< "Body of the mail"

有效。但我想在发送邮件时附加一个文件。怎么做?

答案1

如果您的 Linux 机器上安装了“mutt”,您就可以使用它。

$$ mutt -a "file_attachment"

其他选项与mail命令中的相同。

答案2

附加文件的一种可能方法是对其进行编码。例如

uuencode file_to_attach file_to_attach|mail -s "subject" [email protected] 

将附加file_to_attach到邮件中

答案3

你可以使用mime-constructhttps://linux.die.net/man/1/mime-construct) 或者makemimehttp://manpages.ubuntu.com/manpages/trusty/man1/makemime.1.html)如果这些工具之一可用。

手册页中的示例mime-contruct

发送纯文本部分并附加文件,自动设置文件的内容类型和--附件名称。

mime-construct --to "$recip" --subject "$file" \
--string "Here's the file I told you about.$nl" \
--file-attach "$file"

当然,也可以在脚本中手动创建所有 MIME 标头、边界和文件编码。您可以在属于(BSD 许可)HylaFAX 软件一部分的一些脚本中找到一个(相当复杂的)示例。CreateMailMessage在源代码目录notify.sh.incommon-functions.h.in查找函数。 util(看https://www.hylafax.org/,ftp://ftp.hylafax.org/source/

相关内容