none
Фильтрация входящих сообщений ящика без явно указанного адреса получателя RRS feed

  • Общие обсуждения

  • Доброго дня,

    Может быть, кто-то подскажет идею для реализации следующего:

    Есть Exchange 2010 и ящик Archive, в который при помощи набора транспортных правил поступают копии всех входящих и исходящих сообщений нескольких реальных ящиков (в целях архивации они затем раскладываются Outlook'ом по соответствующим подпапкам "mailboxXXX/SENT" и "mailboxXXX/RECEIVED" в этом ящике). Транспортные правила сформулированы на основе полей заголовка (TO, CC, BCC, FROM) и, в принципе, работают стабильно. Проблема состоит в обработке входящих сообщений, которые некоторые партнеры отправляют, как я понимаю, с помощью некой "mass mail"-техники напрямую через MTA, и которые не содержат в заголовке явно указанного адреса получателя. Они нормально маршрутизируются Exchange, но проскакивают мимо транспортных правил.  Как отфильтровать такие сообщения и опознать при этом адрес получателя для последующей обработки. Повлиять на отправителя с целью добавления поля в заголовки сообщений нет возможности.

    Заранее спасибо.

    12 января 2014 г. 22:25

Все ответы

  • Если список подобных партнеров небольшой то можно транспортными правилами добавить в поле получателя нужный адрес в поле Кому.
    13 января 2014 г. 8:10
  • Спасибо за отклик. Загвоздка состоит не в том, что сделать, а в том, как опознать сообщение, с которым планируется что-то сделать. Сервер прекрасно маршрутизирует сообщение без поля Кому, но как на этапе доставки перехватить его и соотнести с конечным ящиком-получателем?
    14 января 2014 г. 8:39
  • Если вы выложите пример заголовков одного из подобных писем(или нескольких) то я постараюсь найти решение. На данном этапе у меня нет общего решения.
    14 января 2014 г. 9:12
  • Если вы выложите пример заголовков одного из подобных писем(или нескольких) то я постараюсь найти решение. На данном этапе у меня нет общего решения.

    Вот пример заголовка (с первой строкой тела):

    X-x: TimeOut
    X-x: TimeOut
    X-x: TimeOut
    X-x: TimeOut
    X-x: TimeOut
    X-x: TimeOut
    X-x: TimeOut
    X-x: TimeOut
    X-x: TimeOut
    X-x: TimeOut
    X-x: TimeOut
    X-x: TimeOut
    Received: from mail.ourmailserver.net (10.106.81.200) by
     ASHBEXC.ourdomain.local (10.106.81.9) with Microsoft SMTP Server id
     14.1.438.0; Tue, 7 Jan 2014 19:43:42 +0100
    Received: from mx07-0010d501.pphosted.com ([62.209.51.13]:45484)	by
     mail.ourmailserver.net with esmtp (Exim 4.76)	(envelope-from
     <ho.clesnard@sender-domain.com>)	id 1W0bcq-0002pO-2u; Tue, 07 Jan 2014 19:43:43
     +0100
    Received: from pps.filterd (m0043537 [127.0.0.1])	by
     mx07-0010d501.pphosted.com (8.14.5/8.14.5) with SMTP id s07If2aZ023889;	Tue,
     7 Jan 2014 10:43:38 -0800
    Received: from cc0-mob2-irp02.sender-domain.com (cc0-mob2-irp02.sender-domain.com
     [129.35.173.39])	by mx07-0010d501.pphosted.com with ESMTP id 1h8mw10bn4-9;
    	Tue, 07 Jan 2014 10:43:18 -0800
    Received: from cc0-mob2-hcp01.mail.sender-domain.com ([10.3.0.100])  by
     cc0-mob2-irp02.mail.sender-domain.com with ESMTP; 07 Jan 2014 19:43:16 +0100
    Received: from CC0-MOB4-MBP01.mail.sender-domain.com ([fe80::c02a:1c64:c7f5:abab])
     by cc0-mob2-hcp01.mail.sender-domain.com ([2002:f01:fc35::f01:fc35]) with mapi id
     14.02.0387.000; Tue, 7 Jan 2014 19:43:14 +0100
    X-CTCH-RefID: str=0001.0A0C0208.52CC4ADF.01C0:SCFSTAT14643099,ss=1,re=0.000,recu=0.000,reip=0.000,cl=1,cld=1,fgs=0
    From: LESNARD Christophe <ho.clesnard@sender-domain.com>
    CC: VERNOT Elodie <HO.EVERNOT@sender-domain.com>,
    	TRABUC Mireille <ho.mtrabuc@sender-domain.com>,
    	LENEPVEU Karine <HO.KLENEPVEU@sender-domain.com>,
    	REYNAUD   Stephanie <HO.sreynaud@sender-domain.com>,
    	ROBERT Cedrik <ho.crobert@sender-domain.com>,
    	NASSER Samy <ho.snasser@sender-domain.com>, ho.bunkers <ho.bunkers@sender-domain.com>
    Subject: CMA CGM Bunkering operation procedures (FMCL 030 3 13)
    Thread-Topic: CMA CGM Bunkering operation procedures (FMCL 030 3 13)
    Thread-Index: Ac8LBz/41itPXi1QRCaSKpJ3+kgZMwAmdshwAAFdMAAAAFoecAAA0WAwAApCxCA=
    Date: Tue, 7 Jan 2014 18:43:12 +0000
    Message-ID: <1EBA0F328AC4964EAEAFBC9EB9E3921E21D0A035@cc0-mob4-mbp01.mail.sender-domain.com>
    References: <1EBA0F328AC4964EAEAFBC9EB9E3921E21D08057@cc0-mob4-mbp01.mail.sender-domain.com>
        <1EBA0F328AC4964EAEAFBC9EB9E3921E21D09F32@cc0-mob4-mbp01.mail.sender-domain.com>
    In-Reply-To: <1EBA0F328AC4964EAEAFBC9EB9E3921E21D09F32@cc0-mob4-mbp01.mail.sender-domain.com>
    Accept-Language: en-US
    Content-Language: fr-FR
    X-MS-Has-Attach: yes
    X-MS-TNEF-Correlator:
    x-originating-ip: [10.3.0.50]
    Content-Type: multipart/mixed;
    	boundary="_004_1EBA0F328AC4964EAEAFBC9EB9E3921E21D0A035cc0mob4mbp01mai_"
    X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:5.11.87,1.0.14,0.0.0000
     definitions=2014-01-07_07:2014-01-07,2014-01-07,1970-01-01 signatures=0
    X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 suspectscore=0 phishscore=0
     bulkscore=0 adultscore=0 classifier=scan_limit adjust=0 reason=mlx
     scancount=1 engine=7.0.1-1305240000 definitions=main-1401070113
    Return-Path: ho.clesnard@sender-domain.com
    X-MS-Exchange-Organization-AuthSource: ASHBEXC.ourdomain.local
    X-MS-Exchange-Organization-AuthAs: Anonymous
    MIME-Version: 1.0
    X-Antivirus: avast! (VPS 131229-0, 29.12.2013), Inbound message
    X-Antivirus-Status: Clean
    
    --_004_1EBA0F328AC4964EAEAFBC9EB9E3921E21D0A035cc0mob4mbp01mai_
    Content-Type: multipart/alternative;
    	boundary="_000_1EBA0F328AC4964EAEAFBC9EB9E3921E21D0A035cc0mob4mbp01mai_"
    
    
    --_000_1EBA0F328AC4964EAEAFBC9EB9E3921E21D0A035cc0mob4mbp01mai_
    Content-Type: text/plain; charset="us-ascii"
    Content-Transfer-Encoding: quoted-printable
    
    
    Good day,
    
    ...

    Адрес получателя, который отсутствует, следующий: "neptun@ourmailserver.net". Спасибо.

    15 января 2014 г. 22:08
  • На Edge серверах есть замечательные транспортные правила, которых нет на HUB транспортах. А именно есть условие: when any recipient address contains specific words. Ваше правило должно быть что-то типа такого: when any recipient address contains specific words neptun@ourmailserver.net  add a recipient in the To field neptun@ourmailserver.net Данное транспортное правило и добавит явно вашего получателя в поле TO
    Правда если у вас таких Нептунов 200 штук, то на всех правил не на создаешь.
    16 января 2014 г. 19:30
  • Уточните описание вашей проблемы: она с правилами на Exchnage или правилами в Outlook?

    В заголовке письма, который вы привели как пример, есть CC: по которому можно видеть получателей, поэтому не понятно, в чем ваша проблема: как выглядит правило, которое должно сработать, но не срабатывает на этом письме?


    Сазонов Илья http://isazonov.wordpress.com/

    18 января 2014 г. 16:29
    Модератор
  • IgCat, как успехи?

    Мнения, высказанные здесь, являются отражением моих личных взглядов, а не позиции корпорации Microsoft. Вся информация предоставляется "как есть" без каких-либо гарантий. Не забывайте помечать сообщения как ответы и полезные, если они Вам помогли.

    22 января 2014 г. 8:50
    Модератор
  • Уточните описание вашей проблемы: она с правилами на Exchnage или правилами в Outlook?

    В заголовке письма, который вы привели как пример, есть CC: по которому можно видеть получателей, поэтому не понятно, в чем ваша проблема: как выглядит правило, которое должно сработать, но не срабатывает на этом письме?


    Сазонов Илья http://isazonov.wordpress.com/

    Прошу прощения за молчание - был в командировке. Данная проблема касается транспортных правил на сервере Exchange - именно они не срабатывают. Правила сортировщика Outlook представляют собой следующий уровень обработки, и до них такие сообщения не доходят.

    Транспортное правило выглядит так:

    New-TransportRule -Name 'Archive NEPTUN''s RECEIVED' -Comments 'Archiving inward email

    flow of Neptun.' -Priority '0' -Enabled $true -SentTo 'neptun@ourmailserver.net'

    -BlindCopyTo 'archive@ASHBEXC.ourdomain.local'

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

    • Изменено IgCat 29 января 2014 г. 10:59
    29 января 2014 г. 10:00
  • Т.е. проблема такая: письмо доходит на "neptun@ourmailserver.net", но его нет в заголовке и транспортное правило не работает.

    Открывайте кейс в тех. поддержке: если сервер признал письмо правильным и правильно его доставил, то логично ожидать, что транспортные правила также правильно на нем отработают.


    Сазонов Илья http://isazonov.wordpress.com/

    29 января 2014 г. 13:22
    Модератор
  • Уточните описание вашей проблемы: она с правилами на Exchnage или правилами в Outlook?

    В заголовке письма, который вы привели как пример, есть CC: по которому можно видеть получателей, поэтому не понятно, в чем ваша проблема: как выглядит правило, которое должно сработать, но не срабатывает на этом письме?


    Сазонов Илья http://isazonov.wordpress.com/

    Илья - Вы были правы: более кропотливая трассировка сообщений показала, что транспортные правила срабатывают и сбрасывают полученные сообщения в ящик-архив (поскольку используется критерий SentTo). Ранее не удавалось это обстоятельство идентифицировать из-за сложности набора Inbox Rules этого ящика. Именно не опознают должным образом сообщения, которые были отправлены с указанием получателя в BCC, поскольку анализируют только содержимое сообщения.

    Я сделал попытку дополнить каждое сообщение новым элементом заголовка вида "X-OurReceiver-Neptun: Yes" следующим транспортным правилом:

    New-TransportRule -Name 'Mark NEPTUN''s RECEIVED (v3)' -Comments 'Marking inward email flow for NEPTUN' -Priority '4' -Enabled $true -SentTo 'neptun@ourmailserver.net' -SetHeaderName 'X-Our-Receiver-Neptun' -SetHeaderValue 'Yes'

    Расчет был на то, что при N получателях эти маркеры будут "нанизаны" на сообщение, создавая избыточный список получателей в заголовке, и обеспечат срабатывание каждого из Inbox rules, отвечающего за перемещение пришедших сообщений в подпапку конкретного получателя в ящике-архиве. В реальности "нанизывания" не происходит: на каждого реального со-получателя создается индивидуальный дубликат сообщения для ящика-архива и маркер в каждом дубликате сообщения оказывается один.

    Оно прекрасно отрабатывало для сообщений, адресованных через BCC, но: только в случае, если адресовано только одному "нашему" ящику. В случае присутствия N "наших" адресатов в списке получателей, в ящик-архив приходят N копий этого сообщения и только одно из них "выживает": маркер "X-OurReciver-..." в доставленном экземпляре обнаруживается лишь один - соответствующий одному из получателей. Насколько я понял, это происходит по причине того, что все N экземпляров сообщения имеют одинаковый Message-ID и происходит некое "вытеснение лишних экземпляров", при котором выживает то ли первый, то ли последний доставленный экземпляр. Надеюсь, я объяснял не слишком путано. Также я надеюсь, что результат этого маленького эксперимента будет полезен еще кому-то.

    От данного алгоритма, естественно, пришлось отказаться.

    Пока я откатился на прежнюю схему и лишь несколько оптимизировал ее: теперь, вместо транспортных правил для дупликации входящих, я включил форвардинг входящих сообщений реальных ящиков-получателей на ящик-архив с сохранением доставки сообщений оригинальному получателю (Закладка "Mail  flow  settings",  параметр  "Delivery options"). Транспортные правила используются только для дупликации исходящих сообщений.

    Set-Mailbox 'NEPTUN' -ForwardingAddress 'emailarch@ourmailserver.net' -DeliverToMailboxAndForward $true

    New-TransportRule -Name 'Archive NEPTUN''s SENT' -Comments 'Archiving outward email flow of NEPTUN' -Priority 'N' -Enabled $true -From 'neptun@ourmailserver.net' -BlindCopyTo 'emailarch@ourmailserver.net'

    В ящике-архиве создан пересмотренный набор правил для сортировки входного потока по подпапкам получателей:

    New-InboxRule '!! MUST BE THE VERY FIRST RULE !! Mark all read' -Mailbox 'EMAILARCH' -ExceptIfSentOnlyToMe $true -MarkAsRead $true -Priority 0
    
    New-InboxRule 'RECEIVED - NEPTUN' -Mailbox 'EMAILARCH' -SentTo 'neptun' -CopyToFolder 'EMAILARCH:\NEPTUN\RECEIVED' -Priority 6
    New-InboxRule 'SENT - NEPTUN' -Mailbox 'EMAILARCH' -From 'neptun' -CopyToFolder 'EMAILARCH:\NEPTUN\SENT' -Priority 24
    
    New-InboxRule 'Messages for EMAILARCH mailbox only' -Mailbox 'EMAILARCH' -SentOnlyToMe $true -MoveToFolder 'EMAILARCH:\Inbox\Service msgs' -Priority 38
    New-InboxRule '!! MUST BE THE VERY LAST RULE !! Delete processed msgs' -Mailbox 'EMAILARCH' -ExceptIfSentOnlyToMe $true -DeleteMessage $true -Priority 40

    Где-то так. Только сообщения с BCC по-прежнему не опознаются.

    Есть идея копать в сторону Агента Сценариев, только не ясно, есть ли командлет, к которому можно "подвесить" свой сценарий чтобы просматривать заголовок каждого доставляемого сообщения и расшифровывать BCC с применением данных о конечном получателе. Нет ли у кого-нибудь такого опыта?


    • Изменено IgCat 6 февраля 2014 г. 12:51
    6 февраля 2014 г. 12:29
  • На Edge серверах есть замечательные транспортные правила, которых нет на HUB транспортах. А именно есть условие: when any recipient address contains specific words. Ваше правило должно быть что-то типа такого: when any recipient address contains specific words neptun@ourmailserver.net  add a recipient in the To field neptun@ourmailserver.net Данное транспортное правило и добавит явно вашего получателя в поле TO

    В том-то и дело, что нет этих самых "specific words" в заголовке: отправитель использует адресацию через вульгарный BCC для экономии трафика (письма отравляются для сотен адресатов сразу).

    Правда если у вас таких Нептунов 200 штук, то на всех правил не на создаешь.

    Легко: берем Excel, вводим список ящиков и генерим код с использование командлетов ME Exchange. Если нужные существуют, конечно :)


    • Изменено IgCat 6 февраля 2014 г. 12:40
    6 февраля 2014 г. 12:37
  • Предложенный мною вариант и как раз и должен справляется с этим. Под Specific word будет smtp имя вашего адресата (neptun). Таким способом я решал проблему когда мой SMTP адрес скрывался под группой рассылки сторонней организации.
    6 февраля 2014 г. 12:44