我在cron中运行bash脚本,以便在满足特定条件时向多个收件人发送邮件。
我已经编码了这样的变量:
subject="Subject"
from="user@domain.com"
recipients="user1@gmail.com user2@gmail.com"
mail="subject:$subject\nfrom:$from\nExample Message"
实际发送:
echo -e $mail | /usr/sbin/sendmail "$recipients"
问题是只有user2@gmail.com正在接收电子邮件。如何更改此设置以便所有收件人都能收到电子邮件?
注意:解决方案必须是sendmail,我使用的是jailshell,它似乎是唯一可用的方法
答案 0 :(得分:67)
尝试这样做:
recipients="user1@gmail.com,user2@gmail.com,user3@gmail.com"
另一种方法,使用shell here-doc :
/usr/sbin/sendmail "$recipients" <<EOF
subject:$subject
from:$from
Example Message
EOF
请务必按照RFC 822的空白行将标题与正文分开。
答案 1 :(得分:6)
使用选项-t for sendmail。
在你的情况下 - echo -e $mail | /usr/sbin/sendmail -t
并在行To: someone@somewhere.com someother@nowhere.com
From:.....
添加yout Recepient列表给消息本身
-t
选项意味着 -
阅读收件人的邮件。收件人:,抄送:和密件抄送:将扫描收件人地址的行。传输前将删除密件抄送:行。
答案 2 :(得分:0)
使用shell脚本中的sendmail
subject="mail subject"
body="Hello World"
from="me@domain.com"
to="recipient1@domain.com,recipient2@domain.com"
echo -e "Subject:${subject}\n${body}" | sendmail -f "${from}" -t "${to}"