2017-05-01 24 views
0

我在Amazon Linux上使用bash和sendmail发送电子邮件时遇到问题。在我的bash脚本中,我有为什么我无法使用sendmail在我的shell脚本中发送电子邮件?

echo "Subject: My subject" >> /tmp/email.txt 
    echo "" >> /tmp/email.txt 
    cat /tmp/out.txt >> /tmp/email.txt 
    sendmail $EMAIL_ON_FAILURE < /tmp/email.txt 

请注意,我的电子邮件的正文应该是/tmp/out.txt的内容。尽管事实上我通过echo验证过,“$ EMAIL_ON_FAILURE”不是空的,但我在收件箱(或垃圾邮件文件夹)中找不到任何电子邮件。上述有没有什么不妥之处,或者我有另一种方法可以检查我的系统是否发送了电子邮件?

+0

发送你的消息中详细模式:'的sendmail -i -v $ EMAIL_ON_FAILURE AnFi

+0

您是否验证过运行此命令的主机是否配置为正确地路由电子邮件? – alvits

回答

0

Sendmail是邮件传输代理;你需要一个邮件用户代理;尝试使用“邮件”命令,即

mail -s "${SUBJECT}" ${EMAIL_Address} < ${FILE} 

从手册页:

Sendmail是不打算作为一个用户界面例程;其他程序 提供用户友好的前端; sendmail仅用于发送 预格式化的消息。

:)
戴尔

+0

如果OP没有smtp中继,那么这种方式将不起作用您的解决方案假定正在运行的smtp中继 – alvits

+0

不要误解我的意思,我完全理解你的回答,我的意见是基于对OP的分析,我同意'sendmail'不是一个友好的前端工具,但它仍然可以工作如果系统配置正确。因为它不起作用,所以我的评论可能是系统不支持发送电子邮件。如果您对我的建设性评论感到不舒服,请说出来,我很乐意将其删除。 – alvits

相关问题