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

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

Модератор: xM

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
wwaaoo
мл. сержант
Сообщения: 107
Зарегистрирован: 2007-04-15 22:51:46

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

Непрочитанное сообщение wwaaoo » 2008-04-16 13:26:24

Здесь предлагаю размешать просьбы для написания различных правил фильтрации почты.
И моя первая просьба помочь.

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

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

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

Аватара пользователя
Morty
ст. лейтенант
Сообщения: 1370
Зарегистрирован: 2007-07-17 23:25:12

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

Непрочитанное сообщение Morty » 2008-04-16 16:23:14

в поиск - защита рассылки и будет ответ

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

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

Непрочитанное сообщение dikens3 » 2008-04-16 22:28:38

wwaaoo писал(а):Здесь предлагаю размешать просьбы для написания различных правил фильтрации почты.
И моя первая просьба помочь.

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

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

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

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

Аватара пользователя
wwaaoo
мл. сержант
Сообщения: 107
Зарегистрирован: 2007-04-15 22:51:46

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

Непрочитанное сообщение wwaaoo » 2008-04-17 9:27:20

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
Вроде всё работает, и хотел бы разместить в тему полезные скрипты.
Таварисчи спецы проверьте все корректно написано или где-то что-то подправить надо.

princeps
майор
Сообщения: 2684
Зарегистрирован: 2007-09-25 10:20:59
Откуда: Сочи, Москва
Контактная информация:

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

Непрочитанное сообщение princeps » 2008-04-17 10:05:08

А алисами это не проще сделать?
Deus quos vult perdere dementat prius
http://www.itforum-sochi.ru

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

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

Непрочитанное сообщение dikens3 » 2008-04-17 10:13:38

Делай, если чё не так народ укажет на ошибку.

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

Аватара пользователя
wwaaoo
мл. сержант
Сообщения: 107
Зарегистрирован: 2007-04-15 22:51:46

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

Непрочитанное сообщение wwaaoo » 2008-04-17 10:41:15

princeps писал(а):А алисами это не проще сделать?
Приведи свой вариант! :wink:

princeps
майор
Сообщения: 2684
Зарегистрирован: 2007-09-25 10:20:59
Откуда: Сочи, Москва
Контактная информация:

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

Непрочитанное сообщение princeps » 2008-04-17 10:53:29

ну, сделать alias vse@dimain.ru и прицепить к нему все нужные адреса.
Deus quos vult perdere dementat prius
http://www.itforum-sochi.ru

Аватара пользователя
wwaaoo
мл. сержант
Сообщения: 107
Зарегистрирован: 2007-04-15 22:51:46

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

Непрочитанное сообщение wwaaoo » 2008-04-17 11:18:50

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

princeps
майор
Сообщения: 2684
Зарегистрирован: 2007-09-25 10:20:59
Откуда: Сочи, Москва
Контактная информация:

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

Непрочитанное сообщение princeps » 2008-04-17 12:52:46

надо подумать над тем, чтоб при создании нового пользователя он автоматом добавлялся в такие списки рассылки.
Deus quos vult perdere dementat prius
http://www.itforum-sochi.ru

Аватара пользователя
wwaaoo
мл. сержант
Сообщения: 107
Зарегистрирован: 2007-04-15 22:51:46

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

Непрочитанное сообщение wwaaoo » 2008-04-17 23:20:54

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