来自 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

发件人:发件人设置不正确。如果您发送的电子邮件不应看起来像垃圾邮件,请将发件人设置为类似[电子邮件受保护](尝试):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 地址的邮件提供了可信度yourdomain.com

相关内容