Страница 1 из 1

Полезные правила (нужна помощь)

Добавлено: 2008-04-16 13:26:24
wwaaoo
Здесь предлагаю размешать просьбы для написания различных правил фильтрации почты.
И моя первая просьба помочь.

Задача:
Есть адрес VSEM@DOMAIN.RU нужно сделать так чтобы на него могли слать письма только авторизованные пользователи (ну или только с моего домена), а для остальных DENY.

На форуме решения данной проблемы нет ВРОДЕ. :twisted:

Re: Полезные правила (нужна помощь)

Добавлено: 2008-04-16 16:23:14
Morty
в поиск - защита рассылки и будет ответ

Re: Полезные правила (нужна помощь)

Добавлено: 2008-04-16 22:28:38
dikens3
wwaaoo писал(а):Здесь предлагаю размешать просьбы для написания различных правил фильтрации почты.
И моя первая просьба помочь.

Задача:
Есть адрес VSEM@DOMAIN.RU нужно сделать так чтобы на него могли слать письма только авторизованные пользователи (ну или только с моего домена), а для остальных DENY.

На форуме решения данной проблемы нет ВРОДЕ. :twisted:
Решение слишком простое чтобы им заниматься.

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

deny   message = "Get out"
       !authenticated = *
       local_parts = vsem
Если есть желание, оформи в соответствующий вид и закинь в полезные скрипты.

Re: Полезные правила (нужна помощь)

Добавлено: 2008-04-17 9:27:20
wwaaoo
B eщё.

Рассылка почты на адреса прописанные в файле list.e:
Добавляется в секцию begin routers после dnslookup.

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

maillist_for_domain_ru:
	driver		   = redirect
	domains		  = domain.ru
	local_parts    = vsem
	file		     = /usr/local/etc/exim/list.e
	allow_fail
	allow_defer
Файл list.e:

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

andrei@domain.ru
sidorov@domain.ru
petrov@domain.ru
Вроде всё работает, и хотел бы разместить в тему полезные скрипты.
Таварисчи спецы проверьте все корректно написано или где-то что-то подправить надо.

Re: Полезные правила (нужна помощь)

Добавлено: 2008-04-17 10:05:08
princeps
А алисами это не проще сделать?

Re: Полезные правила (нужна помощь)

Добавлено: 2008-04-17 10:13:38
dikens3
Делай, если чё не так народ укажет на ошибку.

У меня через mysql вот так сделано:

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

MYSQL_VSEM      = SELECT CONCAT(username,"@",domain) FROM users

# Рассылка
vsem_mysql:
  driver = redirect
  allow_fail
  allow_defer
  condition = ${if eq{$local_part}{vsem}{yes}{no}}
  data = ${lookup mysql{MYSQL_VSEM}}

Re: Полезные правила (нужна помощь)

Добавлено: 2008-04-17 10:41:15
wwaaoo
princeps писал(а):А алисами это не проще сделать?
Приведи свой вариант! :wink:

Re: Полезные правила (нужна помощь)

Добавлено: 2008-04-17 10:53:29
princeps
ну, сделать alias vse@dimain.ru и прицепить к нему все нужные адреса.

Re: Полезные правила (нужна помощь)

Добавлено: 2008-04-17 11:18:50
wwaaoo
princeps писал(а):ну, сделать alias vse@dimain.ru и прицепить к нему все нужные адреса.
Ааа врубился! Да проще будет (если БД использовать). А вариант с файлом универсальней.

Re: Полезные правила (нужна помощь)

Добавлено: 2008-04-17 12:52:46
princeps
надо подумать над тем, чтоб при создании нового пользователя он автоматом добавлялся в такие списки рассылки.

Re: Полезные правила (нужна помощь)

Добавлено: 2008-04-17 23:20:54
wwaaoo
princeps писал(а):надо подумать над тем, чтоб при создании нового пользователя он автоматом добавлялся в такие списки рассылки.

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

maillist_for_domain_ru:
	driver		  = redirect
	domains		 = domain.ru
	local_parts	= vsem
	data		    = ${lookup mysql{SELECT login FROM users WHERE domain='domain.ru'}}
	allow_fail
	allow_defer
А это таблица в базе MySQL:

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

CREATE TABLE domains (
  domain varchar(128) NOT NULL default '',
  type enum('LOCAL','RELAY','VIRTUAL') default 'LOCAL',
  PRIMARY KEY  (domain));

INSERT INTO domains VALUES ('domain.ru', 'LOCAL');

CREATE TABLE users (
  login varchar(64) NOT NULL default '',
  name varchar(128) NOT NULL default '',
  password varchar(64) NOT NULL default '',
  decrypt varchar(64) NOT NULL default '',
  uid int(10) unsigned default '26',
  gid int(10) unsigned default '6',
  domain varchar(128) NOT NULL default 'domain.ru',
  quota tinyint(4) default '0',
  status enum('0','1') default '1',
  PRIMARY KEY  (login,domain));

INSERT INTO users (login,name,password,decrypt) VALUES ('sidorov','sidorov',encrypt('password'),'password');
Уже как неделю все работает прекрастнооо. :D