Почтовое правило не применяется к определенным сообщениям

721
HannesS

Мы используем среду Exchange 2013 / Outlook 2016 (Office 365). Некоторые сообщения, генерируемые системой уведомлений, не обрабатываются должным образом нашими почтовыми правилами. Правила являются серверными правилами, установленными в OWA. Почтовый ящик 1 - это личный почтовый ящик пользователя, почтовый ящик 2 - это общий почтовый ящик, к которому у этого явного пользователя есть полный доступ.

Правила почтового ящика 1:

Если тема содержит строку пересылки почты в почтовый ящик 2

Правила почтового ящика 2:

Если тема содержит строку, переместите сообщение в папку 1

Строка идентифицирует сообщение по его теме, в этом случае - «Код 140». Когда я отправляю сообщение от своего клиента Outlook на почтовый ящик 1, содержащий строку, оно обрабатывается совершенно нормально - пересылка и перемещение работают.

Любое сообщение с точно такой же темой, которое отправляется из автоматизированного веб-сервиса уведомлений, не обрабатывается правилами и, следовательно, остается в почтовом ящике почтового ящика 1, хотя его следует пересылать и перемещать. Эти сообщения кодируются в UTF-8, но обрабатываются и другие сообщения в кодировке UTF-8, поэтому проблем не должно быть.

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

Я сравнил заголовки сообщений почты, которая запускает правила, и те, которые нет. Свойство Subject идентично последнему биту.

Wireshark след не обработанной почты (POP3 от внешнего почтового сервера): Не работает

Отслеживание Wireshark обработанной почты (POP3 с внешнего почтового сервера): За работой

Вывод Powershell при поиске правил:

[PS] C:\Windows\system32>Get-Mailbox | Where-Object {$_.Alias.Contains("username")} | Get-InboxRule -ErrorAction:SilentlyContinue | Where-Object {$_.Name.Contains("Code")} | select Description | fl  Description : Wenn die Nachricht folgende Bedingungen erfüllt: die Nachricht enthält bestimmte Wörter im Betreff: 'Code 140' Folgende Aktionen ausführen: die Nachricht in Ordner 'Online' verschieben und keine weiteren Regeln für diese Nachricht verarbeiten   Description : Wenn die Nachricht folgende Bedingungen erfüllt: die Nachricht enthält bestimmte Wörter im Betreff: 'Code 140' Folgende Aktionen ausführen: Nachricht an "'email@domain.de'" umleiten und keine weiteren Regeln für diese Nachricht verarbeiten 

Что по-немецки означает «вперед» («умляйтен») и «ход» («вершибен»). «Code140» - это строка, с которой я хочу вызвать правило. Как указано выше, только одно правило для каждого почтового ящика активно (Почтовый ящик 1 -> Переслать в Почтовый ящик 2, Почтовый ящик 2 -> Переместить / Сортировать в папке «Онлайн»)

Есть ли дальнейший способ устранения неполадок, поскольку это влияет только на сгенерированные системой письма?

1
Проверяли ли вы, что само правило будет срабатывать на любом письме и не содержит конкретного отправителя или аналогичного? Seth 7 лет назад 0
Да, правило срабатывает для любых писем (отправленных с 5-6 разных учетных записей для тестирования), но не тех, которые мне нужны :-) Само правило содержит только «Если тема содержит ...» в качестве критерия в одну строку (проверено несколько раз снова через OWA и PowerShell). Я добавил свой код PowerShell, чтобы проверить правила в вопросе. HannesS 7 лет назад 0
Я бы отметил, что в правилах указано «keine weiteren Regeln für diese Nachricht verarbeiten», что означает, что обработка завершится после обработки любого из правил, но вы заявили, что ни одно из них не будет выполнено. Попробуйте использовать 4 пробела для идентификатора / табуляции вместо кавычек, чтобы правильно обрабатывать `$ _`. Вы проверяли другие правила? Может быть, кто-то действительно останавливает обработку, если почта приходит из автоматизированной системы? Seth 7 лет назад 0
Те 2 правила, которые мне возвращаются с помощью скрипта PowerShell, устанавливаются в одном почтовом ящике каждое, что означает, что у 1 почтового ящика есть правило «пересылки», у другого - «переместить» - они просто появляются в этом командлете вместе, потому что я запрашиваю все почтовые ящики и получить каждое правило для каждого почтового ящика. Для целей тестирования существуют только те два правила, которые активны в соответствующем почтовом ящике (MB1 -> «вперед», MB2 -> «двигаться») - никакие другие правила не задействованы / активны. HannesS 7 лет назад 2

0 ответов на вопрос

Похожие вопросы