![Sendmail 退回](https://linux22.com/image/794666/Sendmail%20%E9%80%80%E5%9B%9E.png)
我收到了发给前用户的邮件。他们的帐户已消失,因此邮件被退回,但退回的邮件本身又退回给我。这似乎很明显,这是一个垃圾邮件服务器,不接受任何邮件。有什么好方法可以检测出这种情况并采取更聪明的措施,例如将发件人列入黑名单或将服务器设为 fail2ban?
答案1
所以我刚刚给你写了一个简单的脚本草稿,但是:
我只是假设您正在使用可以访问mail
命令和blacklist
文件的基于 Linux 的邮件服务器。
-显然,您需要对其进行编辑以适合您的特定设置。
-这只是一份草稿,可能存在一些错误,而且,就像我说的,有些东西需要更改。不要复制/粘贴它——它可能不起作用。
bash
#!/bin/bash
# Set the blacklist file location
BLACKLIST_FILE=/path/to/blacklist
# Process bounced emails
for email in /var/mail/bounced/*.eml; do
# Extract the sender's address from the bounce message
SENDER=$(grep -oP 'from=<\K[^>]+>' "$email")
# Check if the sender is already blacklisted
if grep -Fxq "$SENDER" "$BLACKLIST_FILE"; then
# If blacklisted, discard the email and continue
echo "Blacklisted sender: $SENDER"
continue
fi
# Analyze the bounce message (e.g., check for spam patterns)
# ...
# If the sender appears to be a spam server, add them to the blacklist
if [ /* your analysis condition */ ]; then
echo "$SENDER" >> "$BLACKLIST_FILE"
echo "Added $SENDER to blacklist"
fi
done
是的...这篇文章有点长,如果你是编码新手,可能会觉得有点困惑,但这只是一份草稿。
现在这是实际操作方法:
- 将此脚本保存为文件(例如
bounce_handler.sh
)。 - 使用 使脚本可执行
chmod +x bounce_handler.sh
。 - 配置您的邮件服务器以将退回的电子邮件传送到此脚本(例如,使用
.forward
文件或邮件服务器配置设置)。 - 设置一个 cron 作业来定期运行脚本(例如每 15 分钟一次)。
让我知道事情的后续!