bash:printf 发送电子邮件失败,重定向成功

bash:printf 发送电子邮件失败,重定向成功

当我将 printf 的输出通过管道传输到 mail 时,电子邮件未发送。当我将输出写入文件并从文件重定向输入时,它可以正常工作。

例如我有一个包含以下内容的 bash 脚本:

printf "\nsending email.\n" | /usr/bin/mail -s "email test 1" [email protected]

printf "\nsending email\n" > /tmp/email-test
/usr/bin/mail -s "email test 2" [email protected] < /tmp/email-test

电子邮件测试 2 已送达,但电子邮件测试 1 未送达。

症状是间歇性的。有时两封电子邮件都会发出。有时带有管道的那封电子邮件会失败。

无论其中一个还是两个都出去,我都会得到类似于这样的日志行:

Nov 17 07:39:10 boxtop3 postfix/smtp[12749]: 9A7032C23C5: to=<[email protected]>, orig_to=<[email protected]>, relay=smtp.gmail.com[64.233.177.109]:587, delay=1.7, delays=0.04/0/1.1/0.58, dsn=2.0.0, status=sent (250 2.0.0 OK  1573994350 z127sm6991417ywb.38 - gsmtp)
Nov 17 07:39:10 myserver postfix/qmgr[12702]: 9A7032C23C5: removed

我的电子邮件由 GMail 托管,适用于 mydomain.com 和 mydomain.org。GMail 似乎会间歇性地丢弃我的部分电子邮件。为什么?

使用:

  • GNU bash,版本 4.4.20(1)-发布
  • postfix 3.3.0-1ubuntu0.2
  • 邮件 (GNU Mailutils) 3.4

答案1

事实证明,这两个 email 命令都没有问题。每个命令每次执行时都会可靠地发送消息,如 /var/log/mail 中所示。

我的电子邮件被发送到[电子邮件保护],由 GMail 托管。 [电子邮件保护]有规则将所有东西转发给[电子邮件保护]

丢失的邮件在以下邮箱中找到:[电子邮件保护]。他们没有被送到[电子邮件保护]。由于某些未知原因,GMail 无法转发或无法发送我的某些邮件。还有一些其他邮件无法转发/发送——这些邮件只是我注意到的第一批邮件。

相关内容