次のように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: [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
残念ながら、msmtpは、メールクライアントが表示するTo:フィールドを支援するものではありません。メールサーバーとの通信に指定したアドレスのみを使用します。何らかの理由で、メッセージ本文にそれらのアドレスを含めることはありません。
この動作は、From:およびDate:の処理とは異なります。デフォルトで自動的に含まれるフィールド( 続きを読む )。
これは、冗長モードで実行することで直接確認できます(「--> 354 Go ahead ...
」の後の行を探してください)。
echo "Subject: Test\r\n\r\nMessage contents\r\n" | msmtp -v [email protected]
echo "To: [email protected]\r\nSubject: Test\r\n\r\nMessage contents\r\n" | msmtp -v [email protected]
一般に、メールサーバーはそのようなメッセージを喜んで受け入れます-そして多くの人も喜んでそれらを配信します-しかし、洗練されていない技術を持つ特定の会社はそのようなメッセージすべてにスパムとして誤ってフラグを立てます。そのような状況では、To:フィールドをmsmtpにパイプされるメッセージに含めることが唯一の手段となる可能性があります。 )。 (有効な宛先:電子メールアドレスである必要はありません。)