
當我將 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
我的電子郵件由 mydomain.com 和 mydomain.org 的 GMail 託管。 GMail 似乎間歇性地丟棄我的一些電子郵件。為什麼?
使用:
- GNU bash,版本 4.4.20(1)-發布
- 後綴3.3.0-1ubuntu0.2
- 郵件(GNU Mailutils)3.4