The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Модификация транзитной почты на сервере с Postfix
Для автоматического добавления текста к письмам, например, уведомления о
необходимости сохранения коммерческой тайны, можно использовать  alterMIME
(http://pldaniels.com/altermime/). При помощи alterMIME также можно добавлять в
транзитную почту произвольные заголовки, изменять содержимое существующих
заголовков, удалять и заменять вложения в зависимости от имени файла и типа контента.

Устанавливаем altermime в Debian/Ubuntu:

   aptitude install altermime

или для Fedora/CentOS:

   yum install altermime

Для запуска altermime-фильтров будем использовать отдельного пользователя:

   useradd -r -c "Postfix Filters" -d /var/spool/filter filter
   mkdir /var/spool/filter
   chown filter:filter /var/spool/filter
   chmod 750 /var/spool/filter

Создаем скрипт /etc/postfix/disclaimer для запуска alterMIME, взяв за основу
готовый пример, который есть в комплекте:

   cp /usr/share/doc/altermime/examples/postfix_filter.sh /etc/postfix/disclaimer
   chgrp filter /etc/postfix/disclaimer
   chmod 750 /etc/postfix/disclaimer

По умолчанию скрипт не различает входящие и исходящие письма, для того чтобы
добавлять уведомление только в исходящие письма скрипт нужно немного модифицировать.

Правим скрипт /etc/postfix/disclaimer:

   #!/bin/sh
   INSPECT_DIR=/var/spool/filter
   SENDMAIL=/usr/sbin/sendmail

   DISCLAIMER_ADDRESSES=/etc/postfix/disclaimer_addresses

   # Exit codes from <sysexits.h>
   EX_TEMPFAIL=75
   EX_UNAVAILABLE=69

   # Clean up when done or when aborting.
   trap "rm -f in.$$" 0 1 2 3 15

   # Start processing.
   cd $INSPECT_DIR || { echo $INSPECT_DIR does not exist; exit $EX_TEMPFAIL; }

   cat >in.$$ || { echo Cannot save mail to file; exit $EX_TEMPFAIL; }

   # obtain From address
   from_address=`grep -m 1 "From:" in.$$ | cut -d "<" -f 2 | cut -d ">" -f 1`

   if [ `grep -wi ^${from_address}$ ${DISCLAIMER_ADDRESSES}` ]; then
     /usr/bin/altermime --input=in.$$ \
                   --disclaimer=/etc/postfix/disclaimer.txt \
                   --disclaimer-html=/etc/postfix/disclaimer.txt \
                   --xheader="X-Copyrighted-Material: Please visit http://www.company.com/privacy.htm" || \
                    { echo Message content rejected; exit $EX_UNAVAILABLE; }
   fi
 
   $SENDMAIL "$@" <in.$$

   exit $?

Создаем файл etc/postfix/disclaimer_addresses с перечнем адресов для которых
следует добавлять уведомление:

   test1@example.com
   test2@example.com

Текст уведомления помещаем в файл /etc/postfix/disclaimer.txt.

Настраиваем Postfix для вызова alterMIME, в /etc/postfix/master.cf добавляем в строку "smtp":

   -o content_filter=dfilt:

т.е. получаем:

   smtp      inet  n       -       -       -       -       smtpd
      -o content_filter=dfilt:

в конец файла добавляем:

   dfilt     unix    -       n       n       -       -       pipe
      flags=Rq user=filter argv=/etc/postfix/disclaimer -f ${sender} -- ${recipient}

Перезапускаем Postfix:

   /etc/init.d/postfix restart

Для замены или удаления вложения необходимо изменить скрипт
/etc/postfix/disclaimer, использовав другие опции запуска altermime:
   "--remove=имя файла" (удаление вложения), 
   "--replace=имя файла --with=файл для замены" (замена вложения), 
   "--removeall" (удаление всех вложений), 
   "--alter-header=заголовок --alter-with=замены --alter-mode=replace" (замена заголовка),
   "--xheader=заголовок" (добавление заголовка)
 
Ключи: postfix, mail, filter, mime / Лицензия: CC-BY
Раздел:    Корень / Администратору / Сетевые сервисы / Mail, почта / Борьба со спамом, фильтрация почты

Обсуждение [ RSS ]
  • 1.1, BlackHawk (ok), 21:22, 08/10/2010 [ответить]  
  • +/
    как все сложно... все таки exim проще для таких вещей )

    PS: на зря в дебиане по дефолту стоит exim

     
  • 1.4, Anonymous__ (?), 14:07, 12/10/2010 [ответить]  
  • +/
    http://www.howtoforge.com/add-disclaimers-to-outgoing-emails-with-altermime-p
    Author: Falko Timme <ft [at] falkotimme [dot] com>
    Last edited 12/20/2007
    Мда... кописта...
     
     
  • 2.6, Maxim Chirkov (ok), 19:27, 12/10/2010 [^] [^^] [^^^] [ответить]  
  • +/
    > Author: Falko Timme <ft [at] falkotimme [dot] com>
    > Last edited 12/20/2007
    > Мда... кописта...

    Не правда, это на howtoforge.com копипаст.
    Оригинал:
    Postfix-alterMIME-HOWTO
    Derrick J Houy, djhouy@paw.za.org
    v0.05, 13 Apr 2005

    К тому же, если вы присмотритесь, то увидите howtoforge.com в ссылках в заметке (вторая ссылка). Если еще более внимательно присмотритесь, то заметите, что статья на howtoforge.com - это почти полный копипаст материала из первой ссылки к заметке.

     

  • 1.5, Nikolaev D (?), 14:25, 12/10/2010 [ответить]  
  • +/
    grep -m 1 "From:" in.$$ | cut -d "<" -f 2 | cut -d ">"

    на таких конструкциях кривые заголовки пропиливают скрипт

     
  • 1.7, dimonich (ok), 11:46, 11/04/2011 [ответить]  
  • +/
    попробовал все сделать как написано, не добавляется текст нигде :(...А очень и очень надо, не могли бы помочь? Т.к. перечитал уже и буржуйские статьи а результат ноль. Либо не там ищу либо что-то не так сделал.
     


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




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру