Страница 1 из 1
Логи exim4 в MySQL
Добавлено: 2008-02-04 15:28:14
tahirov
Здравствуйте!
По сути у меня задача стоит такая, логи приема/доставок сообщений класть не файл а в базу данных.
Формат примерно следующий
таблица принятых:
eximID сообщения, когда получено, содержание некоторых заголовков письма, откуда, откого
и таблица отправленых:
id, куда, когда, статус отправки
Как писать принятые сообщение уже вроде разобрался
Код: Выделить всё
LOG=INSERT INTO income_mail (date_time, sender_ip, sender_mail, dest_who, dest_where, promo_id) values (now(), $host_address, $sender_address_domain, $local_part, $domain, $header_promoID)
acl_smtp_rcpt = check_recipient
acl_smtp_data = check_message
check_recipient:
warn domains = !+local_domains
set acl_m3 = 1
check_message:
warn condition = ${if eq{$acl_m3}{1}}
set acl_m19 = ${lookup mysql{LOG}}
Вот с таблицей отправленных проблема, пока не могу разобраться как это сделать.
Re: Логи exim4 в MySQL
Добавлено: 2008-02-04 16:49:08
dikens3
Я аутентификацию использую для пользователей. Тем самым это и есть отправленные письма.
Re: Логи exim4 в MySQL
Добавлено: 2008-02-04 17:55:12
tahirov
dikens3 писал(а):Я аутентификацию использую для пользователей. Тем самым это и есть отправленные письма.
Привет, dikens3!
Спасибо за оперативный ответ!
Я наверное неправильно выразился.
Мне нужно проследить судьбу сообщения проходящего через exim, получение я залогировал теперь хочу залогировать доставку.
То есть в итоге мне нужно получить что-то типа:
получено в: 2008-02-04 16:00:00
получено от: 192.168.1.50
отправитель:
sender@sender.com
получатель:
rcpt@rcpt.com
promo_id сообщения: 1234
статус доставки: "не было доставлено так как нет пользователя rcpt в домене rcpt.com"
Re: Логи exim4 в MySQL
Добавлено: 2008-02-04 22:36:45
dikens3
Вот этого не делал, но копать транспорты тебе нужно. Т.к. именно транспорт говорит что письмо доставлено/отложено и т.п.
http://www.lissyara.su/?id=1207#7.4
Добрый Лис использовал вроде эту опцию для обращения к mysql. В какой-то статье проскакивало.
Код: Выделить всё
hosts_avoid_esmtp smtp host list† незадана
Re: Логи exim4 в MySQL
Добавлено: 2008-02-05 10:09:02
tahirov
Спасибо за ответ
Прочитал что за hosts_avoid_esmtp
Эта опция - для использования с кривыми хостами, которые объявляют средства ESMTP (например PIPELINING), и, затем, не в состоянии осуществить их должным образом. Когда хост совпадает с “hosts_avoid_esmtp”, exim посылает HELO, а не EHLO, в начале сеанса SMTP. Это означает, что не могут использоваться какие бы то ни было ESMTP средства, типа AUTH, PIPELINING, SIZE, и STARTTLS.
Возможно Лис как-то хитро использовал эту штуку:)
На счет транспорта не уверен так как сообщение может отвалиться например на роуере DNSLOOKUP если в качестве домена указано что-то не хорошее и до транспорта не дойдет
Re: Логи exim4 в MySQL
Добавлено: 2008-02-05 10:23:46
Alex Keda
просто это одна из немногих раскрываемых опций в транспорте

в смысле - которые мона заюзать не по назначению

Re: Логи exim4 в MySQL
Добавлено: 2008-02-06 11:53:36
tahirov
Уважаемый lissyara!
А можно примерчик?
Re: Логи exim4 в MySQL
Добавлено: 2008-02-06 11:57:40
Alex Keda
чего?
работы?
обычная раскрываемая опция...
Re: Логи exim4 в MySQL
Добавлено: 2008-02-06 12:09:34
tahirov
dikens3 предложил эту опцию как возможное решение моей проблемы.
По описанию опции я не так понял как она может мне помочь так как суть опции
Когда хост совпадает с “hosts_avoid_esmtp”, exim посылает HELO, а не EHLO, в начале сеанса SMTP
Как её можно применить для получение отлупов в базу данных что-то не пойму
Re: Логи exim4 в MySQL
Добавлено: 2008-02-06 12:26:13
dikens3
http://www.lissyara.su/?id=1453
Код: Выделить всё
# Доставка на удалённые хосты - по SMTP
remote_smtp:
driver = smtp
# headers_add = "X-Descriptions: powered by www.lissyara.su"
# следующая строка - это внесение в таблицу отправленных писем - грамотней не
# придумал,поэтому на неё идут варнинги в логах, однако работает :)
hosts_avoid_esmtp = ${lookup mysql{INSERT IGNORE INTO `sended_list` \
(`user_from`, `user_to`, `added_timestamp`, \
`last_mail_timestamp`, `mail_count`) VALUES \
(LCASE('${quote_mysql:$sender_address}'), \
LCASE('${quote_mysql:$local_part@$domain}'), \
UNIX_TIMESTAMP(), UNIX_TIMESTAMP(), '1') ON DUPLICATE \
KEY UPDATE `last_mail_timestamp` = UNIX_TIMESTAMP(), \
`mail_count` = `mail_count` + 1}}
Re: Логи exim4 в MySQL
Добавлено: 2008-02-06 12:29:34
Alex Keda
малость пеергруженный пример, ненаходишь?

))
Re: Логи exim4 в MySQL
Добавлено: 2008-02-06 12:30:56
Alex Keda
и я бы не подсказывал...
опция редкая, запихав её в поиск по сайту форуму примеры были бы сразу.
если ему это лень сделать - думаю щас продолжатся вопросы по теме
"а как мне под себя поправить" и т.д.