2012-03-02 72 views
0

我一直在寻找这个问题的最后2个小时的答案。我有一个带有一个邮箱的sendmail服务器,其中有13,000多封电子邮件。今天,用户打开Outlook,它开始下载所有这些邮件,即使大部分邮件已经被Outlook下载 - 这是所有13,000的复制。谢天谢地,她关闭了大约1,000下载的标志的Outlook。用户在Outlook中设置了“在20天后从服务器删除”。如何删除sendmail服务器上的电子邮件?

我需要通过命令行删除2月11日和2月29日之间在此用户邮箱中的所有邮件。我知道如何从队列中删除邮件,但不知道从邮箱中删除邮件,因为我真的不确定电子邮件文件驻留的位置。

我真的很感谢任何帮助或指引我在正确的方向。

谢谢!

+0

什么样的邮件服务器?这是交换吗? – 2012-03-02 21:38:29

+0

运行“sendmail”的CentOS服务器。 – Spencer 2012-03-02 22:19:38

+0

好,好! :P,我没有经验使用与centos的默认MTA,但我使用Postfix /快递设置。在每个用户的maildir(在这种情况下〜/ .maildir)ther是一个.Sent文件夹,其中包含发送的消息,以及cur,tmp,新的文件夹和存储所有电子邮件的子文件夹。旧的,读取的电子邮件存储在cur文件夹中。我希望这会把你引向正确的道路,但是我知道sendmail的maildir结构可能不会接近:( – 2012-03-02 22:58:53

回答

0

通常的配置是sendmail将邮件放入/ var/spool/mail/[username]中的用户。该文件就是用户连接在一起的所有消息。 (每条消息都以一个从“From”开始的行开始)。

我想你可以通过查看/etc/sendmail.cf来确定。寻找一条开始“Mlocal”的线。这描述了如何交付本地电子邮件。该行的“P =”部分说明了该工作的程序。我认为CentOS目前指定了/ usr/bin/procmail,并且如果用户没有〜/ .procmail文件,它会按照我上面描述的那样进行操作。

您可以简单地将/ var/spool/mail文件移动到/ partition中的另一个目录 - 这是安全的,因为文件系统中的mv在内核级别是原子级的。然后你可以编辑文件,如何你想要的。将编辑过的文件放回原位有点麻烦,因为在sendmail发送另一条消息的同时,您可能会这样做。最安全的方法是停止sendmail,然后将要保留的消息连接到/ var/spool/mail/[user],或者如果它不存在,则将其移回。然后重新启动sendmail。

相关问题