Руссификация уведомлений о доставке postfix

Поотвечав какое то время на вопросы вроде “чего это мне за сообщение бусурманское пришло”, решил руссифицировать сообщения отправляемые почтовым сервером при невозможности доставки, задержке.

Функционал сервера postfix разделен на несколько модулей, за отправку уведомлений, отвечает bounce.
Просмотреть текущее содержимое шаблонов этого демона можно командой:

postconf -b

Всего в bounce можно настроить 4 шаблона:

  1. failure_template: используется если сообщение не было доставлено получателю в течение $maximal_queue_lifetime;
  2. delay_template: используется если сообщение не было доставлено в течение $delay_warning_time часов, но $maximal_queue_lifetime не прошло;
  3. success_template: используется если сообщение было доставлено, но после $delay_warning_time часов;
  4. verify_template: вроде подтверждения о доставке, но по какому триггеру срабатывает не стал разбираться, т.к. не актуально.

Шаблоны следует перечислить в файле шаблонов, обычно это /etc/postfix/bounce.cf, и этот файл указать в конфиге постфикса директивой

bounce_template_file = /etc/postfix/bounce.cf

В файле шаблоны указываются в таком формате:


failure_template = <<EOF
Charset: us-ascii
From: MAILER-DAEMON (Mail Delivery System)
Subject: Undelivered Mail Returned to Sender
Postmaster-Subject: Postmaster Copy: Undelivered Mail

This is the mail system at host $myhostname.
I'm sorry to have to inform you that your message could notbe delivered to one or more recipients. It's attached below.
For further assistance, please send mail to
If you do so, please include this problem report. You candelete your own text from the attached returned message.
The mail system
EOF

В пределах блока <<EOF...EOF символ $ имеет специальное значение, и если требуется его указать в тексте, то следует использовать $$.
За пределами этого блока, строки начинающиеся на # игнорируются.
В тексте шаблона можно использовать любые переменные из файла /etc/postfix/main.cf, например $myhostname.
Что бы проверить ваш файл на валидность можно использовать команду:

postconf -b /etc/postfix/bounce.cf

Для стандартно настроенной убунты, в заголовке Charset: следует указать кодировку UTF-8, именно в таком формате.
Тему сообщения (subject) на русском писать нельзя, вместо этого следует использовать специально закодированную строку (для кодирования можно воспользоваться сервисом кодирования http://www.sendblaster.com/en/utf8-email-subject-encoder)

P.S.

В случае ошибок, проверяйте права доступа:

chown root.postfix /etc/postfix/bounce.cf
chmod 644 /etc/postfix/bounce.cf

Руссификация уведомлений о доставке postfix: 3 комментария

  1. Добавляем в конфигурацию
    postconf -e ‘bounce_file_template = /etc/postfix/bounce.cf’
    Создаем файл с сообщениями
    sudo nano /etc/postfix/bounce.cf
    с содержимом

    # The failure template is used when mail is returned to the sender;
    # either the destination rejected the message, or the destination
    # could not be reached before the message expired in the queue.
    #

    failure_template = <
    Postmaster-Subject: Postmaster Copy: Undelivered Mail

    Это почтовая система на хосте $myhostname.

    Сожалею, что вынужден сообщить вам, что ваше сообщение не может

    доставляться одному или нескольким получателям. Он прикреплен ниже.

    Для получения дополнительной помощи отправьте письмо на адрес
    Если вы это сделаете, включите этот отчет о проблеме. Вы можете

    удалите свой собственный текст из прикрепленного возвращенного сообщения.

    Почтовая система.
    EOF

    #
    # The delay template is used when mail is delayed. Note a neat trick:
    # the default template displays the delay_warning_time value as hours
    # by appending the _hours suffix to the parameter name; it displays
    # the maximal_queue_lifetime value as days by appending the _days
    # suffix.
    ## You need to adjust these suffixes (and the surrounding text) if
    # you have very different settings for these time parameters.
    #

    delay_template = <
    Postmaster-Subject: Postmaster Warning: Delayed Mail

    Это почтовая система на сервере $myhostname.

    ##############################################################################
    # ЭТО ТОЛЬКО ПРЕДУПРЕЖДЕНИЕ. ВАМ НЕ НУЖНО ПОВТОРНО ОТПРАВЛЯТЬ ВАШЕ СООБЩЕНИЕ #
    ##############################################################################
    Ваше сообщение не могло быть доставлено более чем $delay_warning_time_hours часа(ов).
    Он будет повторяться, пока не будет $maximal_queue_lifetime_days дня(ей).

    Для получения дополнительной помощи отправьте письмо на адрес

    Если вы это сделаете, включите этот отчет о проблеме. Вы можете
    удалите свой собственный текст из прикрепленного возвращенного сообщения.

    Почтовая система
    EOF

    #
    # The success template is used when mail is delivered to mailbox,
    # when an alias or list is expanded, or when mail is delivered to a
    # system that does not announce DSN support. It is an error to specify
    # a Postmaster-Subject: here.
    #

    success_template = <<EOF
    Charset: UTF-8
    From: MAILER-DAEMON (Mail Delivery System)
    Subject: =?UTF-8?B?0J7RgtGH0LXRgiDQvtCxINGD0YHQv9C10YjQvdC+0Lkg0LTQvtGB0YLQsNCy0LrQtSDQv9C+0YfRgtGL?=

    Это почтовая система на хосте $myhostname.

    Ваше сообщение было успешно доставлено адресату(ам)
    перечислено ниже. Но, если возникнут проблемы на стороне получателя, вы получите
    уведомления об ошибках доставки почты из почтовой службы получателя.
    Почтовая система
    EOF

    #
    # The verify template is used for address verification (sendmail -bv
    # address…). or for verbose mail delivery (sendmail -v address…).
    # It is an error to specify a Postmaster-Subject: here.
    #

    verify_template = <<EOF
    Charset: UTF-8
    From: MAILER-DAEMON (Mail Delivery System)
    Subject: =?UTF-8?B?0J7RgtGH0LXRgiDQviDRgdC+0YHRgtC+0Y/QvdC40Lgg0LTQvtGB0YLQsNCy0LrQuCDQv9C+0YfRgtGL?=

    Это почтовая система на хосте $myhostname.

    Прилагается запрошенный вами отчет о доставке почты.

    Почтовая система
    EOF

Добавить комментарий

Войти с помощью: