msmtp 空“收件人”和“发件人”字段 - 从 CLI 或手动发送时,所有邮件最终都会出现在批量邮件中

msmtp 空“收件人”和“发件人”字段 - 从 CLI 或手动发送时,所有邮件最终都会出现在批量邮件中

我已经使用以下内容设置了 MSMTP,但如果我从 CLI 发送电子邮件,它要么会被阻止,要么最终会出现在我的垃圾邮件中,因为它没有“收件人”/“发件人”或任何顶部内容。但来自 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: [email protected], [email protected]
# Send everything else to admin
#default: [email protected]
# Send cron to Mark
#cron: [email protected]
#############################
root : [email protected]
EOL

# Needed for Mail Command
cat << EOL >/tmp/testfile
To: [email protected]
From: [email protected]
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

在此输入图像描述

答案1

很遗憾,邮件传输协议对您没有任何帮助到:邮件客户端显示的字段。它仅使用您提供的地址与邮件服务器进行通信 - 无论出于何种原因,它都不会在邮件正文中包含这些地址。

此行为不同于它的处理从:日期:字段,默认情况下将自动包含(阅读更多)。

您可以通过在详细模式下运行来直接看到这一点(查找“ --> 354 Go ahead ...”之后的行):

一般来说,邮件服务器会很乐意接受此类邮件,而且许多服务器也会很乐意发送这些邮件,但某些技术不成熟的公司会错误地将所有此类邮件标记为垃圾邮件。在这种情况下,您唯一的办法可能是包括到:消息中的字段通过管道传输到邮件传输协议。 (甚至可能不需要是有效的“收件人:”电子邮件地址。)

相关内容