Zimbra 7.2 OSE 邮件队列消失

Zimbra 7.2 OSE 邮件队列消失

系统信息:

Description: Ubuntu 10.04.4 LTS

Linux mail 2.6.32-42-server #95-Ubuntu SMP Wed Jul 25 16:10:49 UTC 2012 x86_64 GNU/Linux

H/W path          Device      Class      Description
====================================================
                              system     Bochs
/0                            bus        Motherboard
/0/0                          memory     96KiB BIOS
/0/401                        processor  QEMU Virtual CPU version 1.0.50
/0/402                        processor  CPU
/0/1000                       memory     2GiB System Memory
/0/1000/0                     memory     2GiB DIMM RAM
/0/100                        bridge     440FX - 82441FX PMC [Natoma]
/0/100/1                      bridge     82371SB PIIX3 ISA [Natoma/Triton II]
/0/100/1.1        scsi1       storage    82371SB PIIX3 IDE [Natoma/Triton II]
/0/100/1.1/0.0.0  /dev/cdrom  disk       DVD reader
/0/100/1.2                    bus        82371SB PIIX3 USB [Natoma/Triton II]
/0/100/1.3                    bridge     82371AB/EB/MB PIIX4 ACPI
/0/100/2                      display    GD 5446
/0/100/a                      storage    Virtio block device
/0/100/12                     network    Virtio network device
/1                eth0        network    Ethernet interface

我意外地将 APT 的 Postfix 安装到了我们的 Zimbra 电子邮件服务器虚拟机 (KVM/Proxmox VE 2.1) 上。我立即清除了它,但是没有用。以下是我为修复它而采取的步骤:

  • 重新安装 Zimbra
  • 停止 Zimbra 服务
  • 重置权限

    chown -R zimbra:zimbra /opt/zimbra

  • 固定权限

    /opt/zimbra/libexec/zmfixperms -verbose -extended

  • 重新启动 Zimbra 服务

  • 更新 Zimbra SSH 密钥

    密钥生成器

  • 更新了 Zimbra SSH 密钥

    更新验证密钥

按照上述步骤,Zimbra 现在又可以正常工作了,问题是,由于 Zimbra 一整天都出现故障,邮件队列中的所有电子邮件现在都消失了!我的意思不仅仅是您无法在 GUI 中看到它们,它们甚至不再存在于文件系统中。

当我尝试修复 Zimbra 时,队列中至少有 75 封电子邮件,这是现在的假脱机状态:

zimbra@mail:~$ postqueue -p
Mail queue is empty

我的所有电子邮件到底都到哪里去了?

答案1

如果将来有人遇到此问题,这就是修复方法。您可能会得到不止几封重复邮件,但这总比丢失一封重要的电子邮件要好……

要查找排队的消息,请运行:

grep -iRE '<recipient_email_address>' /var/log/mail.log* | grep -i 'queued as' | awk '{print $6}' | cut -d ':' -f 1 | xargs | tr ' ' '|'

要在文件系统上查找实际的电子邮件文件,请运行:

grep -iRE '<output_from_previous_command>' /opt/zimbra/store | grep -iv 'Message-Id' | cut -d ':' -f 1 | xargs

将电子邮件“注入”回其来自的用户帐户:

su -l zimbra

/opt/zimbra/bin/zmlmtpinject <output_from_previous_command> -r <recipient_email>

请记住,您将丢失所有日期/时间信息。解决此问题的唯一方法是向包含“Date:”标头副本的每条消息添加“X-Zimbra-Received”标头。发挥您的想象力来了解如何做到这一点,Perl 浮现在您的脑海中……

相关内容