Поторопился. Обрезается тема в логе, обрезается. Но уже подальше так сказать.

Результат парсера:
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

Ответить