脚本执行过程中出现了多个问题。🔧 

  1. 系统时间不正确 - 导致apt更新失败
  2. bsmtp未正确安装 - 配置文件目录不存在
  3. sendmail文件忙 - 有其他进程正在使用
  4. 测试邮件发送失败

以下是问题分析和解决方案:

 

快速修复当前问题

#!/bin/bash
echo "=== 修复邮件系统 ==="

# 1. 修复系统时间
echo "1. 同步系统时间..."
sudo apt-get install -y ntpdate
sudo ntpdate time.windows.com

# 2. 清理并重新安装必要组件
echo "2. 重新安装邮件组件..."
sudo apt-get update
sudo apt-get install -y postfix mailutils

# 3. 配置Postfix为仅本地发送
echo "3. 配置Postfix..."
sudo postconf -e "myhostname = localhost"
sudo postconf -e "mydestination = localhost, localhost.localdomain"
sudo postconf -e "inet_interfaces = loopback-only"
sudo postconf -e "mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128"

# 4. 重启服务
echo "4. 重启服务..."
sudo systemctl restart postfix

# 5. 测试邮件发送
echo "5. 测试邮件发送..."
echo "测试邮件 $(date)" | mail -s "邮件系统修复测试" root

# 6. 检查状态
echo "6. 检查状态..."
sudo systemctl status postfix --no-pager -l
mailq

echo "=== 修复完成 ==="

 

关键点:

  1. 时间同步很重要 - apt更新需要正确时间
  2. 选择一种MTA即可 - postfix、exim或ssmtp
  3. 测试时查看日志 - /var/log/mail.log 是重要的调试信息源
  4. 外部SMTP最简单 - 特别是对于发送量不大的服务器

🚀 推荐操作步骤:

  1. 首先同步时间

sudo timedatectl set-ntp true
sudo apt-get install -y ntp
sudo systemctl restart ntp

  1. 安装最小化邮件系统

sudo apt-get update
sudo apt-get install -y postfix mailutils
# 安装时选择"Internet Site",然后输入您的域名

  1. 测试邮件发送

# 发送测试邮件
echo "测试正文" | mail -s "测试主题" 该 Email 地址已受到反垃圾邮件插件保护。要显示它需要在浏览器中启用 JavaScript。

# 查看邮件队列
mailq

# 查看邮件日志
sudo tail -f /var/log/mail.log

 


登陆