The OpenNET Project
 
Поиск (ключи):    ПРОГРАММЫ СТАТЬИ СОВЕТЫ ФОРУМ
  WIKI НОВОСТИ (+) MAN'ы ДОКУМЕНТАЦИЯ

Дублирование доставки почты в Postfix c авторизацией в mysql
Есть Postfix + авторизация пользователей в mysql. Так вот появилась необходимость почту, 
приходящую на какой-нить адрес ещё пересылать кому-угодно. Т.е. не форвардить письмо, 
а именно копию отсылать на нужный адрес. Притом хочется чтобы всё было красиво и понятно.

Решение: 

Postfix ищет virtual_maps в базе mysql
   virtual_maps=hash:/etc/postfix/virtual_maps.cf

virtual_maps.cf содержит запрос который по адресу email выдает alias.  
Что-то типа такого:

   user = postfix
   password = postfix
   dbname = mail
   table = alias
   select_field = goto
   where_field = address
   hosts = 127.0.0.1

На goto идет почта, которая предназначается для address. Т.е. на один физический maildir 
(или другой конечный пункт) собирается почта от разных алиасов. 
Проблема в том что при такой конфигурации не сделать так чтобы почта для user@domain.com 
шла и на alias1@domain.com и на alias2@domain2.com

После анализа того, как механизм Postfix читает возврат от mysql получаем:

Нужно чтобы почта для локального юзера user@domain.com приходила на
user@domain.com + на mail@domain2.com
и + ещё куда нить :) При этом везде должна лежать копия. 

Обычно таблица alias содержит вот что:

   address goto
   email1   email2
   email3   email2
   ...
   email5   email_other

Надо сделать так.

   address   goto
   email     other_email1,other_email2,...

Т.е. через запятую без пробелом указываем все те адреса куда надо послать копию письма. 
hash:/mysql примет строку и КОРРЕКТНО подставит её куда надо, а сам Postfix нормально 
всё выставит в очередь сообщений и отправит. Там же указываем адрес локальной доставки. 
И всё :) Никаких скиптов, procmail и прочей бурды. 

Теперь представьте гибкость и легкость с такими вещами как redirect, forwarding, copy + mysql.
 
 
16.09.2005 , Автор: triz0r
Раздел:    Корень / Администратору / Сетевые сервисы / Mail, почта / Отправка и пересылка сообщений на уровне пользователя

Обсуждение [ Линейный режим | Показать все | RSS ]
 
  • 1.1, HFSC, 10:59, 16/09/2005 [ответить] [смотреть все]
  • +/
    Вот это новость :). Еще лучше поставить себе postfixadmin...
     
     
  • 2.2, triz0r, 12:35, 16/09/2005 [^] [ответить] [смотреть все]
  • +/
    Если не понял зачём это нужно - так не надо сразу корчить из себя гуру
     
  • 1.3, HFSC, 14:06, 16/09/2005 [ответить] [смотреть все]
  • +/
    гуру никто не корчит - просто ктото в очередной раз изобрел велосипед
     
     
  • 2.4, Аноним, 16:54, 16/09/2005 [^] [ответить] [смотреть все]
  • +/
    Я например тоже не думал, что в таблицах мапинга множественные записи нужно указ... весь текст скрыт [показать]
     
     
  • 3.9, ali, 12:27, 05/03/2006 [^] [ответить] [смотреть все]  
  • +/
    > Я например тоже не думал, что в таблицах мапинга множественные записи нужно указывать через запятую, а не просто создавать разные пары записей.
    > Для SQL хранилища это непрозрачно, сразу не допираешь, что это полный аналог файлов.

    А мануалы слабо почитать?
    Однозначно велосипед!

    Кроме того, если в запросе SELECT под описание попадает несколько записей, все они вернутся postfix'у через запятую. Так что заносить в базу через запятую в одной строке вовсе не обязательно. Все адреса, куда надо скопировать, можно заносить в базу отдельными записями, но с одинаковым исходным адресом (с которого будет рассылаться копия во все остальные ящики).

     
     
  • 4.10, Sergey, 11:29, 29/05/2006 [^] [ответить] [смотреть все]  
  • +/
    Мануалы к чему, к postfix, MySQL, просто про синтаксис SQL запросов простой пои... весь текст скрыт [показать]
     
  • 1.5, triz0r, 10:40, 19/09/2005 [ответить] [смотреть все]  
  • +/
    главное  что работает :)
     
  • 1.6, Dmitriy.Donchenko, 00:49, 22/09/2005 [ответить] [смотреть все]  
  • +/
    Собственно, а почему для "зачем это нужно" не использовать sender_bcc_maps и recipient_bcc_maps?

    Очень как мне кажется удобно и не нужно ничего изобретать.

    cat main.cf
    recipient_bcc_maps = hash:/usr/local/etc/postfix/recipient_bcc_map
    sender_bcc_maps = hash:/usr/local/etc/postfix/sender_bcc_map

    cat sender_bcc_map
    user@mail.com       wherecopy@mail.com

    Если я правильно понял, автор просто хотел настроить механизм "архивирования" почты?

    Использование данного варианта в плохих целях не гуманно и все такое прочее.

     
  • 1.7, triz0r, 12:02, 23/09/2005 [ответить] [смотреть все]  
  • +/
    Всё через mysql и только через ОДНУ таблицу!!!
    Если всё на mysql - не хочется перегружать конфигурацию hash справочниками + postmap можно забыть :)
     
     
  • 2.12, Sergey, 13:55, 29/05/2006 [^] [ответить] [смотреть все]  
  • +/
    >Всё через mysql и только через ОДНУ таблицу!!!
    >Если всё на mysql - не хочется перегружать конфигурацию hash справочниками +
    >postmap можно забыть :)
    про приходящую почту понятно, но как быть если нужно сопировать исходящую? если использовать переменную sender_bcc_map, то эту самую мапу нужно где-то описывать.. и как-то мне в голову не приходит ничего, как совместить virtual_alias_map и sender_bcc_map в одной таблице, похоже придется заводить отдельную.. если придумаешь - напиши :-)
     
  • 1.8, Vas, 16:54, 19/01/2006 [ответить] [смотреть все]  
  • +/
    Как при использовании sender_bcc_maps сделать так, чтобы письма копировались не в один ящик, а в несколько?  
     
     
  • 2.11, Sergey, 13:44, 29/05/2006 [^] [ответить] [смотреть все]  
  • +/
    >Как при использовании sender_bcc_maps сделать так, чтобы письма копировались не в один
    >ящик, а в несколько?
    согластно документации постфикс - никак, поддерживается один адрес, но ведь всегда эот понятие можно расширить :-) есть мысль отправлять на виртуальный ящик на сервере, который прописать в таблмце алиасов (собственного Maildir у него может и не быть, если в поле получателей не указывать пользователя с сервера). Т.е. в sender_bcc_maps прописать адрес bcc_user@localdomain, а в таблице алиасов alias=bcc_user@localdomain, rcpt=addr1, addr2, addr3. Впрочем если указать еще до кучи и bcc_user@localdomain - исходящая почта будет просто приходить еще и на этот адрес.
     
  • 1.14, AndreySerov, 16:01, 16/11/2006 [ответить] [смотреть все]  
  • +/
    если у вас присутствует в main.cf virtual_mailbox_maps
    virtual_maps
    то тойже таблице alias необходимо к тем ящикам на которые копировать почту добавить самого владельца ящика иначе будет просто форвардить. Получается форвардить и самому владельцу. Зацикливания нет. Проверено
    может поможет кому)
     

    Ваш комментарий
    Имя:         
    E-Mail:      
    Заголовок:
    Текст:

     Добавить заметку
     Версия для печати
     
     Поиск заметки:
     

    Последние заметки
    - 12.05 Организация шифрованного бэкапа с помощью rdiff-backup, encfs и Dropbox
    - 11.05 Настройка беспроводного соединения в Debian GNU/Linux
    - 07.05 Использование Google Drive в Linux
    - 18.04 Использование нескольких сетевых стеков в Linux
    - 15.04 Восстановление стандартного KDE меню после его удаления (например, wine)
    - 11.04 Настройка gmirror при использовании GPT во FreeBSD 9
    - 09.04 Маршрутизатор на базе FreeBSD с приоритизация трафика средствами PF и ALTQ
    - 02.04 Частичное восстановление данных MySQL из бэкапа, созданного с использованием LVM
    - 21.03 Настройка DNSSEC в BIND 9.9
    - 17.03 Набор номера на Cisco IP Phone 7960/7940 из скрипта
    RSS | Следующие 15 записей >>


    ПОДПИШИСЬ НА ЖУРНАЛ Linux Format 2012!

    Журнал "Linux Format" (Линукс Формат)- Единственный в России и странах СНГ журнал на русском языке, посвящённый Linux и свободному ПО. Журнал для IT-директоров, IT-менеджеров, программистов, системных администраторов, учителей школ и преподавателей ВУЗов и всех пользователей ПК. В каждом выпуске: Новости индустрии OpenSource, обзоры новинок свободного ПО, обучающие и методические статьи.

    Каждый, кто оформит подписку, получает бонусы и подарки- объёмные наклейки на системный блок, диск с архивом номеров за 2005-2011 г.г. и ежемесячно электронную версию журнала в pdf-формате.

    Оформить подписку на год


      Закладки на сайте
      Проследить за страницей
    Created 1996-2012 by Maxim Chirkov  
    ДобавитьРекламаВебмастеруГИД  
    RUNNet TopList