如何从 Linux 发送包含“收件人”、“发件人”、“主题”和“文件附件”的邮件

如何从 Linux 发送包含“收件人”、“发件人”、“主题”和“文件附件”的邮件

我需要能够从 bash 脚本发送包含以下内容的邮件:收件人地址、发件人地址、主题、正文和文件附件

我可以使用 mutt 完美地发送所有内容,除了,无论我做什么,“发件人”地址都没有正确设置:

    e.g. mutt -e "my_hdr From:${FROM}")...

我还可以使用 sendmail 或 mailx,但我似乎无法正确获取文件附件和正文。

    e.g. sendmail -t -a file

答案1

From:您可以在配置文件中设置和其他设置。正文必须来自标准输入。

例如:

cat msg.txt | mutt [email protected] -F ~/.mutt_settings -s "this is my subject" -a file.zip

对于设置文件,复制已经工作的设置文件并更改 From 行:

my_hdr From: Super Man <[email protected]>

答案2

通常有两种构建电子邮件的方法,通过系统(又名兼容的 sendmail 接口)或通过 PORT 25/TCP。无论您使用哪种编程语言或脚本语言,您都会找到这两种情况的示例。

众所周知,当使用兼容的sendmail 接口时,即直接通过系统而不是通过端口25,只有root 可以更改From 字段。

从 PORT 25/TCP 构建电子邮件时,您通常可以根据需要使用任何 FROM: 字段构建电子邮件正文。

另一种选择是像 @Juancho 对一台服务器所说的那样进行全局设置,但是这样您就只能使用一个和一个来自:

另一种选择是将它们作为 root 发送,我不建议这样做。

答案3

这是从脚本覆盖 .muttrc 所需的代码......

    echo "THIS IS THE BODY" | mutt -e "send-hook . \"my_hdr From: TechSupport <[email protected]>\"" -s "THIS IS THE SUBJECT" [email protected] -a test.log

谢谢!

相关内容