Linuxサーバーから送信された電子メールはスパムとして分類されます。

Linuxサーバーから送信された電子メールはスパムとして分類されます。

ディスク使用量が一定以上の場合は、電子メールを送信する.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.4IPアドレスに置き換える必要があります。これは、デフォルトでは、メールが[email protected]ここにリストされているIPアドレスからのみ来ることができることを意味します。これはまた、そのIPアドレスから送信されたと主張するEメー​​ルの信頼性を提供しますyourdomain.com

関連情報