Email
msmtp 空 TO 和 FROM 欄位 - 當從 CLI 或手動發送時,所有郵件都以 Bulk Mail 形式結束
我已經使用以下內容設置了 MSMTP,但如果我從 CLI 發送電子郵件,它要麼被阻止,要麼最終進入我的垃圾郵件,因為它沒有 TO/FROM 或任何頂部。但是來自 CRON 的電子郵件格式正確。
sudo apt-get update sudo apt-get install -y msmtp msmtp-mta # MSMTPRC Configuration cat << EOL >/etc/msmtprc # Set default values for all following accounts. defaults auth on tls on tls_trust_file /etc/ssl/certs/ca-certificates.crt logfile /var/log/msmtp.log aliases /etc/aliases # Comcast account Comcast host smtp.hmc1.comcast.net port 587 from USER@COMCAST user USER@COMCAST password PWD account default : Comcast EOL # Set Strong Permissions due to Plain Text PWD sudo chmod 600 /etc/msmtprc # Configure User Alias cat << EOL >/etc/aliases # Example aliases file # Send root to Joe and Jane #root: joe_smith@example.com, jane_chang@example.com # Send everything else to admin #default: admin@domain.example # Send cron to Mark #cron: mark_jones@example.com ############################# root : sysalert@company.com EOL # Needed for Mail Command cat << EOL >/tmp/testfile To: john@company.com From: server@company.com Subject: E-Mail Setup Script has Completed Successfully "${HOSTNAME} Has been configued to use msmtp, this program will e-mail all CRON results automatically, but does not suporrt the "mail -s" command EOL
不幸的是,msmtp對郵件客戶端顯示的**To:**欄位沒有任何幫助。它僅使用您提供的地址與郵件伺服器進行通信——無論出於何種原因,它都不會在郵件正文中包含這些地址。
此行為與其對**From:和Date:**欄位的處理不同,預設情況下將自動包含這些欄位(閱讀更多)。
您可以通過在詳細模式下執行直接看到這一點(查找“
--> 354 Go ahead ...
”之後的行):
- 比較
echo "Subject: Test\r\n\r\nMessage contents\r\n" | msmtp -v email@example.com
- 對比
echo "To: email@example.com\r\nSubject: Test\r\n\r\nMessage contents\r\n" | msmtp -v email@example.com
通常,郵件伺服器會很樂意接受此類郵件——許多人也會很樂意投遞它們——但某些技術不成熟的公司會錯誤地將所有此類郵件標記為垃圾郵件。在這種情況下,您唯一的辦法可能是在通過管道傳送到msmtp的消息中包含一個**To:**欄位。(它甚至可能不需要是有效的收件人:電子郵件地址。)