Логи exim4 в MySQL

EXIM, sendmail, postfix, Dovecot и прочие. Решение проблем связанных с работой электронной почты

Модератор: xM

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
tahirov
проходил мимо
Сообщения: 5
Зарегистрирован: 2008-02-04 14:21:27

Логи exim4 в MySQL

Непрочитанное сообщение tahirov » 2008-02-04 15:28:14

Здравствуйте!

По сути у меня задача стоит такая, логи приема/доставок сообщений класть не файл а в базу данных.
Формат примерно следующий
таблица принятых:
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}}
Вот с таблицей отправленных проблема, пока не могу разобраться как это сделать.
Последний раз редактировалось Alex Keda 2008-02-04 15:33:00, всего редактировалось 1 раз.
Причина: кнопка [code] - для кого?!

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
dikens3
подполковник
Сообщения: 4856
Зарегистрирован: 2006-09-06 16:24:08
Откуда: Нижний Новгород
Контактная информация:

Re: Логи exim4 в MySQL

Непрочитанное сообщение dikens3 » 2008-02-04 16:49:08

Я аутентификацию использую для пользователей. Тем самым это и есть отправленные письма.
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.

tahirov
проходил мимо
Сообщения: 5
Зарегистрирован: 2008-02-04 14:21:27

Re: Логи exim4 в MySQL

Непрочитанное сообщение tahirov » 2008-02-04 17:55:12

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"

Аватара пользователя
dikens3
подполковник
Сообщения: 4856
Зарегистрирован: 2006-09-06 16:24:08
Откуда: Нижний Новгород
Контактная информация:

Re: Логи exim4 в MySQL

Непрочитанное сообщение dikens3 » 2008-02-04 22:36:45

Вот этого не делал, но копать транспорты тебе нужно. Т.к. именно транспорт говорит что письмо доставлено/отложено и т.п.

http://www.lissyara.su/?id=1207#7.4

Добрый Лис использовал вроде эту опцию для обращения к mysql. В какой-то статье проскакивало.

Код: Выделить всё

 hosts_avoid_esmtp  	 smtp  	 host list†  	 незадана
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.

tahirov
проходил мимо
Сообщения: 5
Зарегистрирован: 2008-02-04 14:21:27

Re: Логи exim4 в MySQL

Непрочитанное сообщение tahirov » 2008-02-05 10:09:02

Спасибо за ответ

Прочитал что за hosts_avoid_esmtp
Эта опция - для использования с кривыми хостами, которые объявляют средства ESMTP (например PIPELINING), и, затем, не в состоянии осуществить их должным образом. Когда хост совпадает с “hosts_avoid_esmtp”, exim посылает HELO, а не EHLO, в начале сеанса SMTP. Это означает, что не могут использоваться какие бы то ни было ESMTP средства, типа AUTH, PIPELINING, SIZE, и STARTTLS.
Возможно Лис как-то хитро использовал эту штуку:)


На счет транспорта не уверен так как сообщение может отвалиться например на роуере DNSLOOKUP если в качестве домена указано что-то не хорошее и до транспорта не дойдет

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35420
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: Логи exim4 в MySQL

Непрочитанное сообщение Alex Keda » 2008-02-05 10:23:46

просто это одна из немногих раскрываемых опций в транспорте =)
в смысле - которые мона заюзать не по назначению =)
Убей их всех! Бог потом рассортирует...

tahirov
проходил мимо
Сообщения: 5
Зарегистрирован: 2008-02-04 14:21:27

Re: Логи exim4 в MySQL

Непрочитанное сообщение tahirov » 2008-02-06 11:53:36

Уважаемый lissyara!

А можно примерчик?

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35420
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: Логи exim4 в MySQL

Непрочитанное сообщение Alex Keda » 2008-02-06 11:57:40

чего?
работы?
обычная раскрываемая опция...
Убей их всех! Бог потом рассортирует...

tahirov
проходил мимо
Сообщения: 5
Зарегистрирован: 2008-02-04 14:21:27

Re: Логи exim4 в MySQL

Непрочитанное сообщение tahirov » 2008-02-06 12:09:34

dikens3 предложил эту опцию как возможное решение моей проблемы.
По описанию опции я не так понял как она может мне помочь так как суть опции
Когда хост совпадает с “hosts_avoid_esmtp”, exim посылает HELO, а не EHLO, в начале сеанса SMTP
Как её можно применить для получение отлупов в базу данных что-то не пойму

Аватара пользователя
dikens3
подполковник
Сообщения: 4856
Зарегистрирован: 2006-09-06 16:24:08
Откуда: Нижний Новгород
Контактная информация:

Re: Логи exim4 в MySQL

Непрочитанное сообщение dikens3 » 2008-02-06 12:26:13

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}}
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35420
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: Логи exim4 в MySQL

Непрочитанное сообщение Alex Keda » 2008-02-06 12:29:34

малость пеергруженный пример, ненаходишь? :)))
Убей их всех! Бог потом рассортирует...

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35420
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: Логи exim4 в MySQL

Непрочитанное сообщение Alex Keda » 2008-02-06 12:30:56

и я бы не подсказывал...
опция редкая, запихав её в поиск по сайту форуму примеры были бы сразу.
если ему это лень сделать - думаю щас продолжатся вопросы по теме
"а как мне под себя поправить" и т.д.
Убей их всех! Бог потом рассортирует...