更改后缀队列中的接收

更改后缀队列中的接收

运行后,postqueue -p我有时会发现拼写错误的电子邮件地址,
有没有办法更改邮件的接收地址(信封地址),
以便可以投递。

例如:

postqueue -p
-Queue ID- --Size-- ----Arrival Time---- -Sender/Recipient-------
A78C42189B1     2523 Thu Jul 25 14:53:57  [email protected]
                (connect to tellia.com[141.8.224.25]:25: Connection timed out)
                                         [email protected]
-- 2 Kbytes in 1 Request.

我想取货A78C42189B1,并将地址更改[email protected][email protected]

答案1

到目前为止我发现我可以:

  1. 使用postcat -q A78C42189B1我可以获得排队项目的副本
  2. 从元数据中清除消息,postcat 消息可能看起来像:

    *** ENVELOPE RECORDS deferred/A/A78C42189B1 ***
    message_size:            2523             248               2               0            2523
    message_arrival_time: Thu Jul 25 14:53:57 2013
    create_time: Thu Jul 25 14:53:57 2013
    named_attribute: rewrite_context=local
    sender_fullname: nobody
    sender: FROM:[email protected]
    original_recipient: [email protected]
    recipient: [email protected]
    *** MESSAGE CONTENTS deferred/A/A78C42189B1 ***
    
    mail headers...
    
    mail body...
    
    *** HEADER EXTRACTED deferred/A/A78C42189B1 ***
    named_attribute: notify_flags=1
    original_recipient: [email protected]
    done_recipient: [email protected]
    *** MESSAGE FILE END deferred/A/A78C42189B1 ***
    

    使用文本编辑器或 sed 清除后缀页眉和页脚,以便文件中只留下邮件头和邮件正文。

  3. 使用 sendmail 将邮件发送到新收件人

    sendmail [email protected] < edited_mail_file
    
  4. 从队列中删除原始邮件postsuper -d mailID

如果有人有 sed 技能,可以剪切邮件头和正文,那么前 3 个步骤应该能够结合在一起

答案2

是的,您描述的方法可以处理滞留在邮件队列中的邮件。

虽然这并不是您具体问题的真正答案,但我想分享我使用您的提示来(重新)解决一些常见拼写错误的域名的方法:

在 postfix/main.cf 中:

recipient_canonical_maps = regexp:/etc/postfix/maps/recipient_canonical

文件 /etc/postfix/maps/recipient_canonical:

/^(.*@)htomail.com$/ ${1}hotmail.com
/^(.*@)homail.com$/ ${1}hotmail.com
/^(.*@)hotmai.com$/ ${1}hotmail.com
/^(.*@)hotmai.co$/ ${1}hotmail.com
/^(.*@)hotma.com$/ ${1}hotmail.com
/^(.*@)gmial.com$/ ${1}gmail.com
/^(.*@)gmail.co$/ ${1}gmail.com
/^(.*@)gmail.nl$/ ${1}gmail.com

相关内容