среда, 26 ноября 2008 г.

Bounce report на русском языке в Postfix


Сама идея посылки сообщений от SMTP-сервера пользователю на любом языке, кроме английского, лично мне кажется в корне неверной, но иногда очень просят ;( Тогда приступаем.
Шаблоны сообщений сервера (всего их 4: failure_template, delay_template, success_template и verify_template) лежат в файле, описывамом в main.cf как bounce_template_file
т.е. добавляем к нашему конфигу примерно такую строку:
bounce_template_file = /etc/postfix/bounce.cf

Теперь дело за малым - создать сам файл. Шаблоны по умолчанию (чтобы было, что править) можно получить либо командой:
$ postconf -b
либо лично у меня уже был файлик bounce.cf.default в директории с конфигами postfix
Пишем в наш файл что-то типа:

success_template = <
EOF
Charset: windows-1251

From: MAILER-DAEMON (Mail Delivery System)
Subject: Successful Mail Delivery Report

Ваше письмо успешно доставлено получателю.
Подробности приведены ниже.
С уважением, Программа Postfix на сервере $myhostname
--------------------------------------------------------------------
EOF

(...и три других шаблона в том же духе).

Прошу обратить внимание, что указанный charset действует только в теле письма, а не в заголовках - они должны быть в гольном ascii. За справкой о прочих возможностях/невозможностях оращайтесь к man-странице bounce(5) - там все довольно неплохо описано.

1 комментарий:

Murz комментирует...

Да уж, просят не так уж и редко. Мне кажется оптимальным писать сначала по-русски, а затем по-английски ещё дублировать, чтобы всем было понятно.

А можете привести полный список всех переведённых сообщений?

Ещё просят очень часто чтобы ответы типа
"552 Message too large" были на русском - их как-то можно перевести?

Насколько я понимаю, в таком случае всё письмо с заголовком аля "Delivery status notification" отсылает сервер отправителя (т.е. если с gmail отправили то gmail его формирует), а мы со своей стороны можем подсунуть только текст после 552, верно?

Его можно где-то в настройках postfix перевести на русский?