簡単なSMTPクライアントをインストールします。
sudo apt install msmtp msmtp-mda
msmtprc:: に設定
cat .msmtprc
account default
host smtp.qq.com
from [email protected]
auth on
tls on
tls_certcheck off
user [email protected]
password xxxx
logfile ~/.msmtp.log
私のqqアカウントを使用して電子メールを送信できます。
echo "Testing msmtp " | mail -s "hi root" -r [email protected] -- [email protected]
電子メールはYahooの電子メールで見つけることができます。
新しい問題を発見しました。ユーザーはシステムのルートに電子メールを送信できません!
echo "cron task work done " | mail -s "hi root" root
mail: cannot send message: Process exited with a non-zero status
ログを確認してください。
Aug 24 20:47:31 host=smtp.qq.com tls=on auth=on [email protected] [email protected] [email protected] smtpstatus=501 smtpmsg='501 Mail from address must be same as authorization user.' errormsg='envelope from address [email protected] not accepted by the server' exitcode=EX_DATAERR
echo "cron task work done " | mail -s "hi root" -r [email protected] root
ログ情報:
Aug 29 06:56:39 host=smtp.qq.com tls=on auth=on [email protected] [email protected] [email protected] smtpstatus=501 smtpmsg='501 Mail from address must be same as authorization user.' errormsg='envelope from address [email protected] not accepted by the server' exitcode=EX_DATAERR
メールコマンドが呼び出されるたびに、リターンホストを次のように指定しても、外部ホストsmtp.qq.comに中継されます。[Eメール保護], mail コマンドでシステムのユーザーとルートの間に電子メールを送信させる方法は?私はmsmtp-mdaをインストールするとpostfixやexim4が削除されるという事実が私の問題に関連している可能性があることを発見しました。
答え1
単純転送メールサーバー()をインストールしましたmsmtp
。パッケージの説明ですDebian で
パッケージ:msmtp(1.8.23-1)
サーバープロファイルをサポートする軽量SMTPクライアント
msmtp
Muttやその他のメールユーザーエージェント(MUA)からメールを送信するために使用できるSMTPクライアント。最終的な配信を担当するSMTPサーバー(無料の電子メールプロバイダなど)にメッセージを転送します。プロファイルを使用すると、さまざまな構成のさまざまなSMTPサーバーを使用するように簡単に構成できるため、モバイルクライアントに最適です。
ここで関連点は「最終転送を担当するSMTPサーバー[...]にメールを転送します。」。
つまり、msmtp
電子メールはリモートメールサーバーにのみ転送でき、ローカルに転送することはできません。これを行うには、Exim、Postfix、Sendmail、またはその他すべての機能を備えたメール転送エージェント(MTA)のいずれかをインストールします。