2009-07-24

Exim и autoreply

Решил вот привернуть такую фишечку. Нарисовал табличку в postgresql. Нарисовал web-интерфейс для пользаков (как тяжко вспоминать php, если еще и не знал его). Настроил exim. Работает :-D

Пришлось немного помучацца с киррилическими символами, но UTF-8 спас отца русской демократии. Правда что в php пришлось перекодировать KOI8-R в UTF-8(да да, апач у меня именно так работает, знаю что изврат, а что делать...). Долго мучался с base64, нифига не помогало...в итоге стал дергать из базы чистый UTF-8, а в exim перекодировать по RFC2047 заголовок сообщения. И да, чтобы не мучацца с base64 всего навсего надо было дописать:
"Content-Transfer-Encoding: quoted-printable\nContent-Type: text/plain; charset=UTF-8 \nMIME-Version:1.0"

В итоге ща транспорт для автоответов такой:
vacation_autoreply:
driver = autoreply
from = $local_part@$domain
to = $sender_address
return_message = false
headers = "Content-Transfer-Encoding: quoted-printable\nContent-Type: text/plain; charset=UTF-8 \nMIME-Version:1.0"
subject                 = ${rfc2047:Re: (autoreply) $h_Subject:}
text                    = ${lookup pgsql{\
select autoreply_text \
from vacation_autoreply \
where lower(mail) = lower('${quote_pgsql:$local_part@$domain}')\
}\
}
once = /var/mail/vacation/$local_part@$domain
once_repeat = 7d
user = mailnull
group = mail
Я до сих пор в шоке от exim, и просто преклоняюсь перед чуваками, которое смогли написать такое =)

2 комментария:

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

дык а что это за фишечка, что она делает-то?

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

Ну, пользак заходит на web-сервак, включает фишечку :-D
Далее забивает текст сообщения. А почтовый сервак на письма, приходящие пользаку, отвечает письмом с этим текстом. Типа автоответчик. Удобно, когда пользак допустим в отпуск ушел, чтобы внешние получатели не гадали, прочитали их письмо, не прочитали...

В общем так...