ディスク使用量が一定以上の場合は、電子メールを送信する.shファイルを作成しました。スクリプトはうまく機能しますが、メールが受信トレイの代わりにスパムボックスに移動します。どうすればいいですか?サーバーで構成する必要がありますか?私はLinuxサーバーを初めて使用します。
スクリプトは次のとおりです。
#!/bin/sh
current_usage=$( df -h | grep '/var' | awk '{percent+=$4;} END{print percent}' | column -t )
max_usage=50
if [ $current_usage -ge $max_usage ]; then
mailbody="Max usage exceeded. Your disk usage is at ${current_usage}."
echo "Sending mail..."
echo ${mailbody} | mail -s "Disk alert!" "[email protected]"
elif [ ${current_usage%?} -lt ${max_usage%?} ]; then
echo "No problems. Disk usage at ${current_usage}." > /dev/null
fi
メールは次のとおりです。
答え1
これは正常です。なぜならローカルホスト、ローカルドメイン存在しないドメイン(インターネットにDNSレコードがない)であり、Gmailはこれを確認できません。スパムではないをクリックしてこの問題を解決するか、パブリックIPおよびDNSレコードでメールサーバーを構成できます。
答え2
発信者:発信者設定が正しくありません。送信メールがスパムのように見えない場合は、送信者を次のように設定してください。[Eメール保護](努力):mail -r [email protected]
echo ${mailbody} | mail -s "Disk alert!" -r [email protected] [email protected]
/etc/hosts
送信者ドメイン(FQDN、「完全修飾ドメイン名」)は、および/またはエントリを介してメールバックエンドソフトウェアによって決定されるか、またはその構成ファイル/etc/hostname
で設定できます。これらの設定は正しくないため、mail
ここでは強制的にオーバーライドします。したがって、より良い解決策は、設定またはsendmail
ここで使用されているものです。 (dmesg
出力を確認するか/var/log/messages
(/var/log/maillog
ここでシステムに従って)、メーラーがそのFQDNを見つけられないために発生したエラーメッセージがあるかどうかを確認してください。)
詳細を知りたい場合は、DKIM(電子メール署名)とSPF(発信者保護フレームワーク)についてお読みください。成功が保証されていなくても、これらのいずれかまたは両方に固執することが役に立ちます。
後者(SPF)は簡単です。次のように、DNSエントリ(関連サーバー/送信者ドメイン用)にエントリを作成します。
yourdomain.com TXT "v=spf1 ip4:1.2.3.4 +a +mx ~all"
1.2.3.4
IPアドレスに置き換える必要があります。これは、デフォルトでは、メールが[email protected]
ここにリストされているIPアドレスからのみ来ることができることを意味します。これはまた、そのIPアドレスから送信されたと主張するEメールの信頼性を提供しますyourdomain.com
。