是否可以更改已排队邮件的发件人地址?
我们目前使用的中继服务器几天前悄悄更改了策略,现在拒绝没有经过验证的发件人地址的邮件。我们现在已经调整了 sendmail 的设置,但一些带有旧发件人地址的邮件已经滞留在队列中(Sender address rejected: unverified address
)。我可以更改他们的发件人地址吗?
答案1
查看 /var/spool/mqueue。每封邮件有两个文件。dfblah 用于电子邮件正文,qfblah 用于标题。您可以忽略 df 文件并集中使用 qf 文件。根据您是否需要仅修改信封发件人或同时修改标题发件人,您可能需要修改一个或两个位置。
在开始修改这些文件之前,请保存一份副本。同时终止 sendmail 以避免锁定/竞争问题。
答案2
Sendmail 将排队的消息存储为文本文件,因此这应该是可能的;然而,队列文件的格式有点复杂(就像 Sendmail 中的所有内容一样……),因此手动修改它们可能并不那么简单。
这里有很多信息:
http://osr507doc.sco.com/en/MailMsgG/sndmlT18.html
http://www.unixmexico.org/files/html/kore.hack.se/oreilly/networking/sendmail/ch23_02.htm
http://www.unixmexico.org/files/html/kore.hack.se/oreilly/networking/sendmail/ch23_09.htm