Поторопился. Обрезается тема в логе, обрезается. Но уже подальше так
сказать.
Результат парсера:
2012-06-09 17:59:35 1SdMCV-0002G4-GA <= U=root Во саду ли в огороде ехала
полиция. Поднимайте девки юб
Тема в логе:
T="\320\222\320\276 \321\201\320\260\320\264\321\203 \320\273\320\270
\320\262 \320\276\320\263\320\276\321\200\320\276\320\264\320\265
\320\265\321\205\320\260\320\273\320\260
\320\277\320\276\320\273\320\270\321\206\320\270\321\217.
\320\237\320\276\320\264\320\275\320\270\320\274\320\260\320\271\321\202\320\265
\320\264\320\265\320\262\320\272\320\270 \321\216\320\261"
Но письмо пришло с полной темой:
http://tnkscr.net/QcqHNK.jpg
Простите за тему письма. Первое и длинное, что в голову пришло :(
-----Исходное сообщение-----
From: Vasyl S. Kostroma
Sent: Saturday, June 09, 2012 7:45 PM
To: Exim MTA на русском
Subject: Re: [Exim-users]Не полная тема сообщения в логе
Ура! Елена, с лёгким поклоном жму Вашу руку.
Я добавил check_rfc2047_length false в конфиг exim-а, теперь все темы
сообщений в логе выглядят в ascii.
Совсем чуть-чуть изменил парсер и вуаля, все темы полные, красивые и
понятные. Громаднейшее Вам спасибо!
ЗЫ. К чему это всё. Периодически пользователи жалуются, что какие-то
сообщения (уведомления, рассылки) не
получают. По запросу службы поддержки приходится проверять по логу, что,
когда и как было доставлено. Так
как уведомлений, да и писем много, то парсер выбирает конкретно нужного
пользователя. И что бы точно знать,
что это именно то письмо мне нужна была тема сообщения. Теперь есть всё и
работает прелестно. Возможно
кому-то это также потребуется, так что с удовольствием поделюсь скриптом.
Обычный bash скрипт, парсит текущий и прошлый лог. Запускается так:
scriptname.sh email@address
Если надо только текущий лог, то
scriptname.sh email@address t
--- начало скрипта ---
#!/bin/bash
#Variables
logfiles=( '/var/log/exim4/mainlog.1' '/var/log/exim4/mainlog' )
echo `date` "-> Starting."
if [ "${input[0]}" = "" ]
then
echo `date` "-> Nothing in input. Exiting."
exit 0
fi
if [ "${input[1]}" = "t" ]
then
echo `date` "-> Checking log for today only."
logfiles=( '/var/log/exim4/mainlog' )
fi
for l in "${logfiles[@]}"
do
echo ""
ids=( `cat $l | grep "${input[0]}" | cut -f3 -d ' ' ` )
for i in "${ids[@]}"
do
cat $l | grep $i | grep 'T="' | cut -f1-4,6 -d ' ' | tr -d "\n" &&
echo -n " "
printf "`cat $l | grep $i | grep 'T="' | cut -f2 -d '"'`"
echo ""
done
done
exit 0
--- конец скрипта ---
-----Исходное сообщение-----
From: [email protected]
Sent: Saturday, June 09, 2012 4:36 PM
To: Exim MTAна русском
Subject: Re: [Exim-users]Не полная тема сообщения в логе
P.S. Нет, не баг. См. параметр check_rfc2047_length в
http://www.exim.org/exim-html-current/doc/html/spec_html/ch14.html
Вам надо его установить в false.
А также см. параметры print_topbitchars и headers_charset.
_______________________________________________
Exim-users mailing list
[email protected]
http://mailground.net/mailman/listinfo/exim-users
_______________________________________________
Exim-users mailing list
[email protected]
http://mailground.net/mailman/listinfo/exim-users
_______________________________________________
Exim-users mailing list
[email protected]
http://mailground.net/mailman/listinfo/exim-users