Задать вопрос
@ChiPer

Как выставить кодировку автоответа в Postfix?

Вопрос следующий.
Имеется postfix 2.9.6-2
Все ящики, транспорты, BCC, хранятся в таблицах MySQL.
Был написан скрипт, предназначенный для реализации автоответа:

#!/bin/bash

sql=`/usr/bin/mysql -u mail -ppass -h localhost mail --skip-column-names -e "SELECT bcc_autoreply_text FROM bcc WHERE bcc_maps='$2'"`

if [[ $sql ]]
    then
    	/usr/bin/sendemail -f no-reply@bioline.ru -t $1 -o message-charset=utf-8 -u Notify -m $sql
fi


в master.cf, соответственно есть запись:
autoreply unix  - 	n 	n 	- 	- 	pipe flags=DRhu user=autoreply argv=/etc/postfix/BCC/autoreply ${sender} ${recipient}


В общем суть в чем. Автоответчик обрабатывает письма отлично. Но сам текст автоответчика приходит нормально только в английской кодировке. Русские буквы приходят вопросами. При этом, при попытке вручную запустить этот скрипт, все приходит отлично и в русской и в английской вариации. Есть подозрение, что что-то с системными локалями. Но все, вроде настроено нормально:

LANG=ru_RU.UTF-8
LANGUAGE=
LC_CTYPE="ru_RU.UTF-8"
LC_NUMERIC="ru_RU.UTF-8"
LC_TIME="ru_RU.UTF-8"
LC_COLLATE="ru_RU.UTF-8"
LC_MONETARY="ru_RU.UTF-8"
LC_MESSAGES="ru_RU.UTF-8"
LC_PAPER="ru_RU.UTF-8"
LC_NAME="ru_RU.UTF-8"
LC_ADDRESS="ru_RU.UTF-8"
LC_TELEPHONE="ru_RU.UTF-8"
LC_MEASUREMENT="ru_RU.UTF-8"
LC_IDENTIFICATION="ru_RU.UTF-8"
LC_ALL=
  • Вопрос задан
  • 985 просмотров
Подписаться 2 Оценить Комментировать
Решения вопроса 1
t_q_l
@t_q_l
Интересная личность
Какая кодировка БД?
SHOW VARIABLES LIKE "character_set_database";

Что если у юзера postix локаль не такая, как у вас, например, LANG=C?

Попробуйте принудительно выставлять локаль в скрипте:

#!/bin/bash
set LANG=ru_RU.UTF-8

sql=`/usr/bin/mysql -u mail -ppass -h localhost mail --skip-column-names -e "SELECT bcc_autoreply_text FROM bcc WHERE bcc_maps='$2'"`

if [[ $sql ]]
    then
    	/usr/bin/sendemail -f no-reply@bioline.ru -t $1 -o message-charset=utf-8 -u Notify -m $sql
fi
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы