我需要能够从 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
谢谢!