[РЕШЕНО] ( Exim + procmail ) && "Получение статуса доставки"

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

Модератор: xM

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
erGo
проходил мимо
Сообщения: 3
Зарегистрирован: 2010-03-01 16:44:45
Откуда: UA, Chenigov

[РЕШЕНО] ( Exim + procmail ) && "Получение статуса доставки"

Непрочитанное сообщение erGo » 2010-03-01 16:56:22

Всем здрям.

Есть такая ситуяйция: с выделенного почтового сервака письма приходят на мой определённому юзеру и процмылом оного шлются трубой в скрипт. Скрипт коннектится с локальному сайту (под апачем) у и делает свои телодвижения. Но вот незадача - апач иногда лежит (до 10 секунд в сутки), а письма идут всегда. В итоге - иногда письма до сайта не доходят и никто об этом не знает, кроме отправителя, и то - ежели он проверит.

Как екзиму отправлять в трубу с контролем и дефером, минуя процмыл, я разобрался. Как екзим отправляет в процмыл - тоже. И возник вопрос - а может ли екзим получать от процмыла статус доставки? а то не хочется несколько десятков правил портировать из процмыла в экзим :oops:

Сенкс э лот фор хелп.
Последний раз редактировалось erGo 2010-03-03 12:18:19, всего редактировалось 1 раз.

Хостинговая компания 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/
Выделенные сервера, Россия, Москва, от 2460 рублей (8 CPU, 8Gb RAM, 2x500Gb HDD, RAID 3ware 9750):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

erGo
проходил мимо
Сообщения: 3
Зарегистрирован: 2010-03-01 16:44:45
Откуда: UA, Chenigov

Re: ( Exim + procmail ) && "Получение статуса доставки"

Непрочитанное сообщение erGo » 2010-03-02 16:30:22

Нашёл нужную инфу в факе екзима:
If you want to run pipes and examine their results, you need to set up a single delivery to a delivery agent such as procmail which provides this kind of facility
Нашёл в мане процмыла, как его вызывать, чтоб он не баунсил письмо в случае ошибки, а репортовал о "временной ошибке":
-t Make procmail fail softly, i.e., if procmail cannot deliver the
mail to any of the destinations you gave, the mail will not
bounce, but will return to the mailqueue. Another delivery-
attempt will be made at some time in the future.
Нашёл и такое:
(Note: invoking procmail with the -t flag causes it to return EX_TEMPFAIL instead of EX_CANTCREAT. This would cause the message to be requeued. However, this is not generally recommended.)
Нашёл образцы, как это сделано: тута и здеся.
Сделал. Конфиги:
exim:

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

begin routers
...
procmail:
  driver = accept
  check_local_user
  local_parts = my-user
  transport = transport_pipe_procmail
  require_files = ${local_part}:${home}:${home}/.procmailrc:/usr/local/bin/procmail
  no_verify

begin transports
...
transport_pipe_procmail:
  driver = pipe
  command = "/usr/local/bin/procmail -t"
  temp_errors = *
  timeout_defer = true
  timeout = 1h
procmailrc:

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

PATH=$HOME/bin:/usr/bin:/sbin:/usr/sbin:/bin:/usr/local/bin:/usr/local/sbin
MAILDIR=$HOME/Mail/             # Youd better make sure it exists
LOGFILE=$HOME/log/procmail.log
LOGABSTRACT=all
LOCKTIMEOUT=600
VERBOSE=yes
YEARM=`/bin/date +%Y-%m`

:0 H
* ^From.*MAILER-DAEMON
/dev/null

:0 c
$YEARM

:0 H
* ^To.*my-user@myhost
$HOME/log/test
На $HOME/log/test установлены права, запрещающие пользователю процмыла писать в файл. В логе процмыла ошибка светится. А лог екзима говорит - успешно доставлен.

:st: Куда ещё подскажете копать? :st:

erGo
проходил мимо
Сообщения: 3
Зарегистрирован: 2010-03-01 16:44:45
Откуда: UA, Chenigov

[РЕШЕНО] ( Exim + procmail ) && "Получение статуса доставки"

Непрочитанное сообщение erGo » 2010-03-03 12:17:35

Разобрался.

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

begin transports
...
transport_pipe_procmail:
  driver = pipe
  command = "/usr/local/bin/procmail -t -m /path/to/procmailrc"
  temp_errors = *
  timeout_defer = true
  timeout = 1h
Тему можно закрывать.

[offtop]
Прикольный у меня театр одного актёра получился ))
[/offtop]

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

Re: [РЕШЕНО] ( Exim + procmail ) && "Получение статуса доставки"

Непрочитанное сообщение Alex Keda » 2010-03-03 14:12:03

бывает =)
я вообще часто вопрос пишу в форум, пока написал - понял как надо =))
Убей их всех! Бог потом рассортирует...

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

Re: [РЕШЕНО] ( Exim + procmail ) && "Получение статуса доста

Непрочитанное сообщение dikens3 » 2010-03-04 18:59:36

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