надо реализовать такую схему:письмо уходит с определённого ящика с вложением,поподает в заданный ящик,и не уходит оттуда,пока это письмо с вложением не будет просмотрено...Эту схему надо реализовать только для входящих сообщений,много доков почитала,но того что нужно не нашла,очень нужна ваша помощь!!!
>надо реализовать такую схему:письмо уходит с определённого ящика с вложением,поподает в заданный
>ящик,и не уходит оттуда,пока это письмо с вложением не будет просмотрено...Эту
>схему надо реализовать только для входящих сообщений,много доков почитала,но того что
>нужно не нашла,очень нужна ваша помощь!!!amavisd справиться с этим
>>надо реализовать такую схему:письмо уходит с определённого ящика с вложением,поподает в заданный
>>ящик,и не уходит оттуда,пока это письмо с вложением не будет просмотрено...Эту
>>схему надо реализовать только для входящих сообщений,много доков почитала,но того что
>>нужно не нашла,очень нужна ваша помощь!!!
>
>amavisd справиться с этима средствами postfix никак не осущиствить?
>а средствами postfix никак не осущиствить?можно через header_checks задать HOLD для этих писем
>>а средствами postfix никак не осущиствить?
>
>можно через header_checks задать HOLD для этих писема можно поподробней? желательно с примером
я просто новичёк в в юниксах
>>>а средствами postfix никак не осущиствить?
>>
>>можно через header_checks задать HOLD для этих писем
>
>а можно поподробней? желательно с примером
>я просто новичёк в в юниксахОШИБЛАСЬ!!!!всё это нужно для исходящих сообщений
>ОШИБЛАСЬ!!!!всё это нужно для исходящих сообщенийтак давай еще раз по порядку.
если есть исходящее письмо с определенного адреса, то его нужно задержать до действия администратора. так?
>
>>ОШИБЛАСЬ!!!!всё это нужно для исходящих сообщений
>
>так давай еще раз по порядку.
>если есть исходящее письмо с определенного адреса, то его нужно задержать до
>действия администратора. так?да-так..сотрудник пишет письмо и пузырит в него вложение,письмо летит на постфикс,и там оно должно по какому то правилу должно перенапровляться на ящик админа,письмо без вложения должно вылетать в мир нормально,как делала:
как делала:main.cf
body_checks = pcre:/usr/local/etc/postfix/attachments.pcre
attachments.pcre
/Content-Disposition: attachment;/ REDIRECT postmaster@domain.com
в логах:
Mar 11 15:45:29 mail postfix/smtp[33999]: DA18CB86A: to=<fixerrr@ya.ru>, relay=mx1.yandex.ru[77.88.21.89], delay=1, status=sent (250 2.0.0 Content-Policy reject msg: Message accepted. LD; S3325967AbZCKMqb)
Mar 11 15:45:29 mail postfix/qmgr[33991]: DA18CB86A: removed
Т.Е. как поняла политикой запрещено,но всёравно отправляет на ура...
Вопрос Чернешевского-что делать????
>[оверквотинг удален]
>
>main.cf
>body_checks = pcre:/usr/local/etc/postfix/attachments.pcre
>attachments.pcre
>/Content-Disposition: attachment;/ REDIRECT postmaster@domain.com
>в логах:
>Mar 11 15:45:29 mail postfix/smtp[33999]: DA18CB86A: to=<fixerrr@ya.ru>, relay=mx1.yandex.ru[77.88.21.89], delay=1, status=sent (250 2.0.0 Content-Policy reject msg: Message accepted. LD; S3325967AbZCKMqb)
>Mar 11 15:45:29 mail postfix/qmgr[33991]: DA18CB86A: removed
>Т.Е. как поняла политикой запрещено,но всёравно отправляет на ура...
>Вопрос Чернешевского-что делать????скажи безопасникам что так вопрос не решить
>
>скажи безопасникам что так вопрос не решитьне поняла....какие безапасники?
>>скажи безопасникам что так вопрос не решить
>не поняла....какие безапасники?:))
>да-так..сотрудник пишет письмо и пузырит в него вложение,письмо летит на постфикс,и там >оно должно по какому то правилу должно перенапровляться на ящик админа,письмо без >вложения должно вылетать в мир нормально,как делала:с этим спокойно справится procmail
>с этим спокойно справится procmailprocmail раскидывает входящую почту,а мне нужно исходящую и только с вложениями пузырить на другой ящик,как это сделать в процмэйле я так и не поняла..
>>с этим спокойно справится procmail
>
>procmail раскидывает входящую почту,а мне нужно исходящую и только с вложениями пузырить
>на другой ящик,как это сделать в процмэйле я так и не
>поняла..Задачу сформулируй точнее. Тебе нужно исходящим наружу письмам вложения отрезать, а оригинал с вложением админу засылать (типа вот он гнида, хотел инфу конкурентам слить, но мы не позволили)? Или тебе надо чтобы на исходящее письмо электронную подпись кто-нибудь накладывал (типа утверждаю) и отправлял дальше?
угумс,сорри, только не входящую, а локальную почту.
>body_checks = pcre:/usr/local/etc/postfix/attachments.pcre
>attachments.pcreподозреваю, что срабатывает разрешающее правило, прежде чем проверки дойдут до сточки выше
покажи main.cf только без комментов
mail# postconf -n
alias_database = hash:/etc/mail/aliases
alias_maps = hash:/etc/mail/aliases
body_checks = pcre:/usr/local/etc/postfix/body_checks
command_directory = /usr/local/sbin
config_directory = /usr/local/etc/postfix
daemon_directory = /usr/local/libexec/postfix
debug_peer_level = 2
disable_vrfy_command = yes
html_directory = no
inet_interfaces = all
local_recipient_maps =
mail_owner = postfix
mailq_path = /usr/local/bin/mailq
manpage_directory = /usr/local/man
mydestination = $myhostname, localhost, $mydomain, localhost, bars2.com
mydomain = bars2.com
myhostname = mail.bars2.com
mynetworks = 192.168.0.0/24, 127.0.0.0/8
mynetworks_style = class
myorigin = $mydomain
newaliases_path = /usr/local/bin/newaliases
queue_directory = /var/spool/postfix
readme_directory = no
relay_domains = $mydestanation, $mydomain
relay_transport = relay
sample_directory = /usr/local/etc/postfix
sender_bcc_maps = hash:/usr/local/etc/postfix/bcc
sendmail_path = /usr/local/sbin/sendmail
setgid_group = maildrop
smtp_always_send_ehlo = yes
smtp_mail_timeout = 15s
smtp_rcpt_timeout = 15s
smtp_sasl_auth_enable = no
smtp_use_tls = no
smtpd_banner = $myhostname mail server
smtpd_data_restrictions = reject_unauth_pipelining
smtpd_etrn_restrictions = reject
smtpd_helo_restrictions = reject_unknown_hostname
smtpd_reject_unlisted_sender = yes
smtpd_sasl_auth_enable = no
transport_maps = hash:/usr/local/etc/postfix/transport
unknown_local_recipient_reject_code = 550
>Задачу сформулируй точнее. Тебе нужно исходящим наружу письмам вложения отрезать, а оригинал
>с вложением админу засылать (типа вот он гнида, хотел инфу конкурентам
>слить, но мы не позволили)?да,именно это мне и надо
что, никто не может мне помочь????
1) я использую другой почтовик, но, думаю, что, если postfix умеет обнаруживать наличие вложения в письмо, то все остальное труда не составит. Так что, ищите решение.
2) насколько я знаю, postfix умеет работать с фильтрами через milter. А тут уж есть куча готовых фильтров, думаю, что и для postfix что-то найдется
3) если бы мне опнадобилось решить эту задачу срочно, то я бы заворачивала бы всю исходящую почту в локальный ящик, делала бы разбор почты procmail'ом и отправляла ее по назначению.
Криво, тупо, нерационально, но зато было бы время на поиск грамотного решения.
/Content-Disposition: attachment;/ REDIRECT postmaster@domain.com
похоже проверка не сработала
проверьте, есть ли в хеадерах письма, пришедшего на яндекс, эта строчка.. открыл первое попавшееся письмо с вложением, там немного по другому: "Content-Disposition: inline;"у меня сделано так
/^(.*)name=(.*)\.(dll|exe|com|bat)$/ REDIRECT postmaster@domain.com
body_checks = pcre:/usr/local/etc/postfix/body_checks
и здесь у меня header_checks
>body_checks = pcre:/usr/local/etc/postfix/body_checks
>и здесь у меня header_checksheader_checks
он же проверяет не тело,а шапку письма,разве нет?
>header_checks
>он же проверяет не тело,а шапку письма,разве нет?content-deposotion -это хеадер
в мануале по header_checks есть такой пример использования/etc/postfix/main.cf:
header_checks = regexp:/etc/postfix/header_checks/etc/postfix/header_checks:
/^content-(type|disposition):.*name[[:space:]]*=.*\.(exe|vbs)/
REJECT Bad attachment file name extension: $2
>[оверквотинг удален]
>
> /etc/postfix/main.cf:
> header_checks
>= regexp:/etc/postfix/header_checks
>
> /etc/postfix/header_checks:
> /^content-(type|disposition):.*name[[:space:]]*=.*\.(exe|vbs)/
>
>
> REJECT Bad attachment file name extension: $2но тогда и взодящие сообщения тоже будут реджетиться,так?
>но тогда и взодящие сообщения тоже будут реджетиться,так?да, это применяется ко всем письмам
а чтобы только для исходящих... если у вас есть 2 сетевых интерфейса(внутренний и внешний) - то можно на них повесить разные smtp, чтобы проверка хеадеров проходила только для писем приходящих на внутренний интерфейс. Это описывается в master.cf
Либо можно написать свой скрипт обработки писем, который будет определять откуда куда идет письмо, и соответственно редиректить его или пропускать. Читайте про параметр content-filter в main.cf
> Либо можно написать свой скрипт обработки писем, который будет определять
>откуда куда идет письмо, и соответственно редиректить его или пропускать. Читайте
>про параметр content-filter в main.cfхм...легко сказать написать скрипт
>у меня как раз 2 сетевухи,и постфикс используется как шлюз-дальше пуляет в локалку и обратно,а как сделать,чтобы только для внутренней сетевухи работало это правило?
чтобы запустить разные версии smtpd на разных айпи адресах:
ищем строчку в master.cf:
smtp inet n - n - - smtpdзаменяем на:
192.168.0.1:smtp inet n - n - - smtpd
-o header_checks=pcre:/usr/local/etc/postfix/header_checks
66.77.88.99:smtp inet n - n - - smtpd
перед "-o" обязательно пробелы или табуляция
где 192.168.0.1 - внутренний айпи, 66.77.88.99 - внешнийтак мы указали, что на smtpd, висящем на внутреннем интерфейсе, опция header_checks будет иметь значение pcre:/usr/local/etc/postfix/header_checks
из файла main.cf удаляем параметр header_checks или заменяем на другое значение. В итоге на разных интерфейсах используются разные header_checks
>итоге на разных интерфейсах используются разные header_checksкруто..:))...счас буду пробовать
ep 4 16:07:22 mail postfix/smtp[609]: 466A6B8EE: to=<fixerrr@ya.ru>, relay=mx2.yandex.ru[93.158.134.89], delay=47, status=sent (250 2.0.0 Content-Policy reject msg: Message accepted. LD; S3162536AbZCSOKV)
пропустил на ура:((
покажите master.cf main.cf header_checks и хеадеры отправляемого письма
header_checks
/^(.*)name=(.*)\(mp3|doc|jpeg)$/ REDIRECT postmaster@bars2.com
/Content-Disposition: attachment;/ REDIRECT postmaster
master.cf
92.168.0.153:smtp inet n - n - - smtpd
-o header_checks=pcre:/usr/local/etc/postfix/header_checks
195.239.X.X:smtp inet n - n - - smtpd
pickup fifo n - n 60 1 pickup
cleanup unix n - n - 0 cleanup
qmgr fifo n - n 300 1 qmgr
tlsmgr unix - - n 1000? 1 tlsmgr
rewrite unix - - n - - trivial-rewrite
bounce unix - - n - 0 bounce
defer unix - - n - 0 bounce
trace unix - - n - 0 bounce
verify unix - - n - 1 verify
flush unix n - n 1000? 0 flush
proxymap unix - - n - - proxymap
smtp unix - - n - - smtp
relay unix - - n - - smtp
-o fallback_relay=
showq unix n - n - - showq
error unix - - n - - error
discard unix - - n - - discard
local unix - n n - - local
virtual unix - n n - - virtual
lmtp unix - - n - - lmtp
anvil unix - - n - 1 anvil
scache unix - - n - 1 scache
maildrop unix - n n - - pipe
flags=DRhu user=vmail argv=/usr/local/bin/maildrop -d ${recipient}
old-cyrus unix - n n - - pipe
flags=R user=cyrus argv=/cyrus/bin/deliver -e -m ${extension} ${user}
cyrus unix - n n - - pipe
user=cyrus argv=/cyrus/bin/deliver -e -r ${sender} -m ${extension} ${user}
uucp unix - n n - - pipe
flags=Fqhu user=uucp argv=uux -r -n -z -a$sender - $nexthop!rmail ($recipient)
ifmail unix - n n - - pipe
flags=F user=ftn argv=/usr/lib/ifmail/ifmail -r $nexthop ($recipient)
bsmtp unix - n n - - pipe
flags=Fq. user=foo argv=/usr/local/sbin/bsmtp -f $sender $nexthop $recipient
main.cf
queue_directory = /var/spool/postfix
command_directory = /usr/local/sbin
daemon_directory = /usr/local/libexec/postfix
mail_owner = postfix
myhostname = mail.bars2.com
mydomain = bars2.com
myorigin = $mydomain
inet_interfaces = all
mydestination = $myhostname, localhost, $mydomain, localhost, bars2.com
local_recipient_maps =
unknown_local_recipient_reject_code = 550
mynetworks_style = class
mynetworks = 192.168.0.0/24, 127.0.0.0/8
relay_domains = bars2.com
alias_maps = hash:/etc/mail/aliases
alias_database = hash:/etc/mail/aliases
smtpd_banner = $myhostname mail server
debug_peer_level = 2
debugger_command =
PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
xxgdb $daemon_directory/$process_name $process_id & sleep 5
sendmail_path = /usr/local/sbin/sendmail
newaliases_path = /usr/local/bin/newaliases
mailq_path = /usr/local/bin/mailq
setgid_group = maildrop
html_directory = no
manpage_directory = /usr/local/man
sample_directory = /usr/local/etc/postfix
readme_directory = no
recipient_maps = hash:/usr/local/etc/postfix/recipient
transport_maps = hash:/usr/local/etc/postfix/transport
relay_domains = $mydestanation, $mydomain
relay_transport = relay
smtp_always_send_ehlo = yes
smtpd_helo_restrictions = reject_unknown_hostname
smtpd_data_restrictions = reject_unauth_pipelining
smtpd_etrn_restrictions = reject
smtpd_delay_reject = yes
smtpd_reject_unlisted_sender = yes
disable_vrfy_command = yes
smtp_mail_timeout = 15s
smtp_rcpt_timeout = 15s
smtp_sasl_auth_enable = no
smtpd_sasl_auth_enable = no
smtp_use_tls = no
smtpd_tls = no
smtpd_recipient_restrictions = permit_mynetworks,reject_unknown_recipient_domain,reject_unauth_destination,reject_unauth_pipelining,reject_invalid_hostname,reject
вроде всё..
лучше в таком виде
header_checks
/.*name=.*(mp3|doc|jpeg)$/ REDIRECT postmaster@bars2.com
/Content-Disposition: attachment;/ REDIRECT postmaster@bars2.comне забудьте выполнть "postfix reload"
и покажите исходный текст письма, которое вы посылаете
вложение действительно имеет расширение mp3|doc|jpeg?
тело письма
From: "xoxa" <xoxa@bars2.com>
To: <fixerrr@ya.ru>
Subject: test
Date: Fri, 20 Mar 2009 11:18:10 +0300
MIME-Version: 1.0
Content-Type: multipart/mixed;
boundary="----=_NextPart_000_01EC_01C9A94D.8D5BCF30"
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 6.00.2900.2180
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2180This is a multi-part message in MIME format.
------=_NextPart_000_01EC_01C9A94D.8D5BCF30
Content-Type: multipart/alternative;
boundary="----=_NextPart_001_01ED_01C9A94D.8D5BCF30"
------=_NextPart_001_01ED_01C9A94D.8D5BCF30
Content-Type: text/plain;
charset="koi8-r"
Content-Transfer-Encoding: quoted-printable
=F3 =F5=D7=C1=D6=C5=CE=C9=C5=CD, =E1=CC=C5=CB=D3=C5=CA.
=D4.465
------=_NextPart_001_01ED_01C9A94D.8D5BCF30
Content-Type: text/html;
charset="koi8-r"
Content-Transfer-Encoding: quoted-printable<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=3DContent-Type content=3D"text/html; charset=3Dkoi8-r">
<META content=3D"MSHTML 6.00.5730.13" name=3DGENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=3D#ffffff>
<DIV> </DIV>
<DIV><FONT face=3DArial size=3D2>=F3 =F5=D7=C1=D6=C5=CE=C9=C5=CD,=20
=E1=CC=C5=CB=D3=C5=CA.<BR>=D4.465</FONT></DIV></BODY></HTML>------=_NextPart_001_01ED_01C9A94D.8D5BCF30--
------=_NextPart_000_01EC_01C9A94D.8D5BCF30
Content-Type: application/octet-stream;
name="=?koi8-r?B?wc7UydfJ0tXTLmRvYw==?="
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
filename="=?koi8-r?B?wc7UydfJ0tXTLmRvYw==?="
кстати, делаю postfix check,он пишет:
postfix/postfix-script: warning: not owned by root: /usr/local/etc/postfix/main.cf
как то не очень понимаю,что он хочет,но может это из за этого у мя правило не срабатывает????
не из-за этого...
вроде все конфиги правильные
почитайте про PCRE http://www.pcre.ru/docs/perl/text/intro/ и проверяйте header_checks
>кстати, делаю postfix check,он пишет:
>postfix/postfix-script: warning: not owned by root: /usr/local/etc/postfix/main.cf
>как то не очень понимаю,что он хочет,но может это из за этого
>у мя правило не срабатывает????#chown root /usr/local/etc/postfix/main.cf
В общем победила,всё реджетится и редеректится,но есть одно но...подскажите плиз,что нуно прописать в header_checks чтобы он не пропускал файлы написанные по русски??
с меня пиво,если что:))
>В общем победила,всё реджетится и редеректится,но есть одно но...подскажите плиз,что нуно прописать
>в header_checks чтобы он не пропускал файлы написанные по русски??
>с меня пиво,если что:))Надо с руководством поделиться!