Назад | Перейти на главную страницу

Изменить прием в очереди postfix

После запуска postqueue -p я иногда нахожу адреса электронной почты с ошибками,
есть ли способ изменить адрес приема (конвертировать в адрес) сообщений,
так что это может быть доставлено.

пример:

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

Я хочу забрать вверх A78C42189B1, и измените адрес yyyyy@tellia.com к yyyyy@telia.com

Да, описанный вами метод работает с почтой, застрявшей в очереди.

Хотя это не совсем ответ на вашу конкретную проблему, я хотел бы поделиться тем, что я сделал для (повторного) решения некоторых распространенных ошибок в написании доменных имен в будущем, используя вашу подсказку:

В 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

Пока я узнал, что могу:

  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:xxxx@xxxx.se
    original_recipient: yyyyy@tellia.com
    recipient: yyyyy@tellia.com
    *** MESSAGE CONTENTS deferred/A/A78C42189B1 ***
    
    mail headers...
    
    mail body...
    
    *** HEADER EXTRACTED deferred/A/A78C42189B1 ***
    named_attribute: notify_flags=1
    original_recipient: backup@xxxx.se
    done_recipient: backup@xxxx.se
    *** MESSAGE FILE END deferred/A/A78C42189B1 ***
    

    Очистите заголовок и нижний колонтитул постфикса, чтобы в файле оставались только заголовки и тело письма, используя текстовый редактор или sed.

  3. используйте sendmail, чтобы отправить письмо новому получателю

    sendmail yyyyy@telia.com < edited_mail_file
    
  4. удалить исходное письмо из очереди postsuper -d mailID

если кто-то с навыками sed может вырезать заголовок и тело письма, 3 первых шага должны быть в состоянии объединить конвейер