当我将 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