【问题标题】:Why am I unable to send an email in my shell script using sendmail?为什么我无法使用 sendmail 在我的 shell 脚本中发送电子邮件?
【发布时间】:2017-09-28 23:51:51
【问题描述】:

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

    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”不为空,但我在收件箱(或垃圾邮件文件夹)中没有找到任何电子邮件。以上是否有问题,或者有其他方法可以在我的系统上检查电子邮件是否实际发送?

【问题讨论】:

  • 以详细模式向您发送消息:sendmail -i -v $EMAIL_ON_FAILURE &lt; /tmp/email.txt(-i 关闭“单点线是消息的结尾)
  • 您是否确认运行此命令的主机已配置为正确路由电子邮件?

标签: bash shell sendmail amazon-linux


【解决方案1】:

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

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

来自手册页:

Sendmail 不打算用作用户界面例程;其他程序 提供用户友好的前端; sendmail 仅用于投递 预先格式化的消息。

:)
戴尔

【讨论】:

  • 如果 OP 没有 smtp 中继,这也不起作用。您的解决方案是假设有一个工作的 smtp 中继。
  • 不要误会我的意思。我完全理解你的回答。我的评论是基于对 OP 帖子的分析。我同意sendmail 不是一个友好的前端工具,但如果系统配置正确,它应该仍然可以工作。因为它不起作用,因此我评论说系统可能不支持发送电子邮件。如果您对我的建设性评论感到不满意,请说出来,我很乐意将其删除。
猜你喜欢
  • 2018-07-22
  • 1970-01-01
  • 2011-08-14
  • 2018-09-01
  • 2016-05-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-22
相关资源
最近更新 更多