Exim, postfixadmin + vacation

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

Модератор: xM

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
gregor_anon
проходил мимо

Exim, postfixadmin + vacation

Непрочитанное сообщение gregor_anon » 2007-02-16 17:47:22

Кто-нибудь прикручивал модуль vacation к связке Exim + postfixadmin? В доке написано:
4. Setup the transport type
--------------------
Define the transport type in the Postfix master file:

#/etc/postfix/master.cf:
filter unix - n n - - pipe
flags=DRhu user=vacation argv=/var/spool/vacation/vacation.pl

Tell Postfix to use a transport maps file, so add the following to your
Postfix main.cf:

#/etc/postfix/main.cf:
transport_maps = hash:/etc/postfix/transport

Then add the transport definition to the newly created transport file.
Obviously, change yourdomain.com to your own domain. This can be any
arbitrary domain, and it is easiest if you just choose one that will be used
for all your domains.

#/etc/postfix/transport
autoreply.yourdomain.com vacation

Execute "postmap /etc/postfix/transport" to build the hashed database.

Execute "postfix reload" to complete the change.
а как это сделать в exim? Или есть другой способ?

Хостинговая компания 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/

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

Непрочитанное сообщение Alex Keda » 2007-02-16 17:51:20

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

gregor
рядовой
Сообщения: 49
Зарегистрирован: 2007-02-16 17:51:29

Непрочитанное сообщение gregor » 2007-02-16 18:08:01

lissyara писал(а):а чё за вакатион?
Ну это типа автответа если ты в отпуске, включил автоответчик и все знают что тебя пока нет. VIRTUAL_VACATION папка в дирректории postfixadmin.

P.S. Наконец зарегистрировался.

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

Непрочитанное сообщение Alex Keda » 2007-02-16 18:12:04

http://www.lissyara.su/?id=1227
чем неустраивает?
Убей их всех! Бог потом рассортирует...

gregor
рядовой
Сообщения: 49
Зарегистрирован: 2007-02-16 17:51:29

Непрочитанное сообщение gregor » 2007-02-16 18:31:00

lissyara писал(а):http://www.lissyara.su/?id=1227
чем неустраивает?
Интересная дока, но как это описать в конфиге используя таблицу модуля vocation:

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

CREATE TABLE vacation (
  email varchar(255) NOT NULL default '',
  subject varchar(255) NOT NULL default '',
  body text NOT NULL,
  cache text NOT NULL,
  domain varchar(255) NOT NULL default '',
  created datetime NOT NULL default '0000-00-00 00:00:00',
  active tinyint(4) NOT NULL default '1',
  PRIMARY KEY  (email),
  KEY email (email)
) TYPE=MyISAM COMMENT='Postfix Admin - Virtual Vacation';

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

address_reply:
  driver = autoreply
 ...

gregor
рядовой
Сообщения: 49
Зарегистрирован: 2007-02-16 17:51:29

Непрочитанное сообщение gregor » 2007-02-16 18:47:19

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

address_reply:
  driver = autoreply
  from = $original_local_part@$domain 
  subject = ${lookup mysql{SELECT subject FROM vacation WHERE ... }}
  text = ${lookup mysql{SELECT body FROM vacation WHERE ... }}
  to = ${lookup mysql{SELECT email FROM vacation WHERE ... }}
Правильно мыслю?

gregor
рядовой
Сообщения: 49
Зарегистрирован: 2007-02-16 17:51:29

Непрочитанное сообщение gregor » 2007-02-18 22:11:01

Вроде сделал, кому интересно смотрите:
в роутенге после всех проверок на спам (хотя наверно надо до чтом не дёргать dspam+mysql) пишем:

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

vacation_director:
  driver = accept
  domains = ${lookup mysql{SELECT domain FROM vacation WHERE \
                       domain='${quote_mysql:$domain}' AND \
                       email='${quote_mysql:$local_part@$domain}' AND \
                       active='1'}{$value}}
  transport = vacation_autoreply
  unseen
в транспорте в любом месте описываем:

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

vacation_autoreply:
  driver = autoreply
  user = mail
  group = mail
  to = ${sender_address}
  from = "${local_part}@${domain}"
  log = /var/log/exim/vacation.log
  subject = "Auto Reply from ${local_part}@${domain}"
  text = ${lookup mysql {SELECT body FROM vacation \
        WHERE domain='${quote_mysql:$domain}' AND \
        email='${quote_mysql:$local_part@$domain}'}{$value}}

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

Непрочитанное сообщение Alex Keda » 2007-02-19 0:26:33

толи лыжи не едут...
=========
там оригинальный индексный файл в этой директории - пустой, фактически.
к нему интерфейса нету чтоль?
Убей их всех! Бог потом рассортирует...

gregor
рядовой
Сообщения: 49
Зарегистрирован: 2007-02-16 17:51:29

Непрочитанное сообщение gregor » 2007-02-19 15:43:20

lissyara писал(а):толи лыжи не едут...
=========
там оригинальный индексный файл в этой директории - пустой, фактически.
к нему интерфейса нету чтоль?
Это ты о чём?

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

Непрочитанное сообщение Alex Keda » 2007-02-19 15:44:25

я о том, как этим управлять...
Убей их всех! Бог потом рассортирует...

gregor
рядовой
Сообщения: 49
Зарегистрирован: 2007-02-16 17:51:29

Непрочитанное сообщение gregor » 2007-02-19 17:38:06

lissyara писал(а):я о том, как этим управлять...
В postfixadmin включаешь модуль vacation и по ссылке http://where-postfixadmin-location/users каждый юзер почтового сервера может включить или выключить автоответчик (там ещё можно пароль менять), правда "Subject" поле не участвует в формировании autoreply письма так как кириллица не допустима в сабжекте письма.

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

Непрочитанное сообщение Alex Keda » 2007-02-19 17:58:23

о. вкурил.
Убей их всех! Бог потом рассортирует...

Аватара пользователя
Zedik
сержант
Сообщения: 283
Зарегистрирован: 2007-01-20 22:30:57
Откуда: 127.0.0.1

Непрочитанное сообщение Zedik » 2007-03-03 12:26:34

для тех у кого авторизация проходит по name@domen нужно править в vacation.php
строку $goto = $tGoto . "," . "$USERID_USERNAME@$vacation_domain";
до такой: $goto = $tGoto . "," . "$USERID_USERNAME";

gregor
рядовой
Сообщения: 49
Зарегистрирован: 2007-02-16 17:51:29

Непрочитанное сообщение gregor » 2007-03-03 17:43:19

Zedik писал(а):для тех у кого авторизация проходит по name@domen нужно править в vacation.php
строку $goto = $tGoto . "," . "$USERID_USERNAME@$vacation_domain";
до такой: $goto = $tGoto . "," . "$USERID_USERNAME";
А что это даёт? У меня вроде и так работает.

P.S. Для SM поставил postfixadmin plugin, вполне доволен. Единственное alias не разрешает завести.
Вложения
postfixadmin-0.3-1.4.tar.gz
(10.77 КБ) 140 скачиваний

gregor
рядовой
Сообщения: 49
Зарегистрирован: 2007-02-16 17:51:29

Непрочитанное сообщение gregor » 2007-03-03 19:45:42

Написал разработчику плагина и вложил ru po файл. Жду ответа...

Аватара пользователя
Zedik
сержант
Сообщения: 283
Зарегистрирован: 2007-01-20 22:30:57
Откуда: 127.0.0.1

Непрочитанное сообщение Zedik » 2007-03-03 20:14:00

gregor писал(а):
Zedik писал(а):для тех у кого авторизация проходит по name@domen нужно править в vacation.php
строку $goto = $tGoto . "," . "$USERID_USERNAME@$vacation_domain";
до такой: $goto = $tGoto . "," . "$USERID_USERNAME";
А что это даёт? У меня вроде и так работает.

P.S. Для SM поставил postfixadmin plugin, вполне доволен. Единственное alias не разрешает завести.
у меня он к доставке адрес назначения выставлял name@domen@domen
а что за плугин?

gregor
рядовой
Сообщения: 49
Зарегистрирован: 2007-02-16 17:51:29

Непрочитанное сообщение gregor » 2007-03-03 20:34:10

Zedik писал(а): [...]
а что за плугин?
Все функции из http://where_postfixadmin_locate/users теперь доступны в SquirrelMail, т. е. Alias, Auto Response (vacation), Change Password

Аватара пользователя
sergio
мл. сержант
Сообщения: 79
Зарегистрирован: 2006-12-30 2:47:28
Откуда: Русь Києвська

Непрочитанное сообщение sergio » 2007-07-13 13:52:48

Zedik писал(а):для тех у кого авторизация проходит по name@domen нужно править в vacation.php
строку $goto = $tGoto . "," . "$USERID_USERNAME@$vacation_domain";
до такой: $goto = $tGoto . "," . "$USERID_USERNAME";
Заменил, однако

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

temporarily rejected RCPT <sergio@ol.org.ua>: error in redirect data: malformed address: @ol.org.ua may not follow sergio@ol.org.ua in "sergio@ol.org.ua@ol.org.ua"

Аватара пользователя
sergio
мл. сержант
Сообщения: 79
Зарегистрирован: 2006-12-30 2:47:28
Откуда: Русь Києвська

Непрочитанное сообщение sergio » 2007-07-13 15:16:33

Сори разобрался
Все пашет!
Только вот беда - пытаюсь тему получить из mysql:

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

vacation_autoreply:
  driver = autoreply
  user = mailnull
  group = mail
  to = ${sender_address}
  from = "${local_part}@${domain}"
  log = /var/log/exim/vacation.log
  #subject = Auto Reply from ${local_part}@${domain}

 subject = ${lookup mysql {SELECT subject FROM vacation \
        WHERE domain='${quote_mysql:$domain}' AND \
        email='${quote_mysql:$local_part@$domain}'}{$value}}

 text = ${lookup mysql {SELECT body FROM vacation \
        WHERE domain='${quote_mysql:$domain}' AND \
        email='${quote_mysql:$local_part@$domain}'}{$value}}

при этом если в теме латинские символы- все ок, а вот если кирилица - ОШИБКА!

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

 Expansion of "${lookup mysql {SELECT subject FROM vacation WHERE domain='${quote_mysql:$domain}' AND email='${quote_mysql:$local_part@$domain}'}{$value}}" in vacation_autoreply transport contains non-printing character 216

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

Непрочитанное сообщение Alex Keda » 2007-07-13 15:32:26

а там нельзя кириллицу...
можно схитрить. заюзать это:
http://ru2.php.net/urlencode
т.е. письмо должно быть в html с символами русскими кодированными таким макаром.
браузеры нормално понимают русские символы кодированные таким макаром.
те почтовые клиенты(большинство) которые используют внешнюю смотрелку для писем в html - тоже поймут.
===========
причём мона ну совсем простой html - а текст внутри ограничиичть тегами < pre></pre >
Убей их всех! Бог потом рассортирует...

gregor
рядовой
Сообщения: 49
Зарегистрирован: 2007-02-16 17:51:29

Непрочитанное сообщение gregor » 2007-07-13 15:58:56

Можно ведь передать Content-transfer-enciding? Или я ошибаюсь?

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

Непрочитанное сообщение Alex Keda » 2007-07-13 16:07:45

в смысле?
Убей их всех! Бог потом рассортирует...

gregor
рядовой
Сообщения: 49
Зарегистрирован: 2007-02-16 17:51:29

Непрочитанное сообщение gregor » 2007-07-14 15:51:48

lissyara писал(а):в смысле?
Ну типа exim может сформировать правильный заголовок письма.

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

Непрочитанное сообщение Alex Keda » 2007-07-14 19:53:49

не. это старая тема, и вроде штатными средствами её никто не решил.
===========
сделаешь (неважно как) - отпишись.
думаю многим будет интересно. В т.ч. и мне.
Убей их всех! Бог потом рассортирует...

вущтшышн
проходил мимо

Re:

Непрочитанное сообщение вущтшышн » 2009-09-17 17:07:25

sergio писал(а):
Zedik писал(а):для тех у кого авторизация проходит по name@domen нужно править в vacation.php
строку $goto = $tGoto . "," . "$USERID_USERNAME@$vacation_domain";
до такой: $goto = $tGoto . "," . "$USERID_USERNAME";
Заменил, однако

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

temporarily rejected RCPT <sergio@ol.org.ua>: error in redirect data: malformed address: @ol.org.ua may not follow sergio@ol.org.ua in "sergio@ol.org.ua@ol.org.ua"

Как ты с этим разобрался?