Courier Mail Server Forum Index Courier Mail Server
www.courierms.ru
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Обработка полей CC: и BCC: при обнаружении дубликатов.

 
Post new topic   Reply to topic    Courier Mail Server Forum Index -> Courier Mail Server 3.xx
View previous topic :: View next topic  
Author Message
Akiko
Subscriber
Subscriber


Joined: 30 Nov 2015
Posts: 16

PostPosted: 27 Apr 2017 21:06 (Thu)    Post subject: Обработка полей CC: и BCC: при обнаружении дубликатов. Reply with quote

Всем добра!

Стоит версия 3.08. В настройках внешнего ящика указано извлекать получателей из полей To: Cc: Bcc:. Обнаружил проблему с обработкой дубликатов писем.
Если во входящем письме несколько получателей перечислены в поле CC:, то письмо обрабатывается корректно - каждый получатель получает свою копию письма.
Если отправитель указывает несколько получателей в поле BCC:, то письмо получает первый указанный в списке, остальные отбрасываются как дубликаты.
Как с этим бороться?
Когда стояла версия 3.05 и встроенного обработчика дубликатов не было, боролись с помощью батника, обрабатывающего дубликаты.
Это было тут: http://www.courierms.ru/forum/viewtopic.php?t=1760
Но там была несколько другая проблема - наоборот, письма множились по количеству получателей и нужно было удалить лишнее. Теперь же, удаляется и нужное. Для понятности прикладываю лог, почтовые домены в нем изменены.
Code:
 27.04.2017 19:27:53 00AQ Начали приём почты из внешнего п/я <postmaster@corporate.mail>...
 27.04.2017 19:27:54 00AQ Писем во внешнем п/я: 1101 (новых 4)
@27.04.2017 19:27:54 00AQ Принято письмо N1098 03O0000L (2982 байт) от <master.akiko@personal.mail> из п/я <postmaster@corporate.mail> (Тема: "bcc5"; UID: "0001ca161504037b")
@27.04.2017 19:27:54 00AR Обрабатываем письмо 03O0000L (2982 байт) от <master.akiko@personal.mail> для <it@corporate.mail> (Тема: "bcc5")
 27.04.2017 19:27:54 00AR Начали сортировку "Main sorter"... Получатели: <it@corporate.mail>
 27.04.2017 19:27:54 00AR Закончили сортировку "Main sorter". Получатели: <it@corporate.mail>
 27.04.2017 19:27:54 00AR Начали сортировку "Main sorter"... Получатели: <it@corporate.mail>
 27.04.2017 19:27:54 00AR Закончили сортировку "Main sorter". Получатели: <it@corporate.mail>
@27.04.2017 19:27:54 00AR Доставлено письмо 03O0000L (3021 байт) от <master.akiko@personal.mail> для <it@corporate.mail> (Тема: "bcc5")
@27.04.2017 19:27:54 00AQ Отклонено письмо N1099 (3001 байт) от <master.akiko@personal.mail> из п/я <postmaster@corporate.mail>: Дубликат по Message-ID (Тема: "bcc5"; UID: "0001ca171504037b")
@27.04.2017 19:27:54 00AQ Отклонено письмо N1100 (3003 байт) от <master.akiko@personal.mail> из п/я <postmaster@corporate.mail>: Дубликат по Message-ID (Тема: "bcc5"; UID: "0001ca181504037b")
@27.04.2017 19:27:54 00AQ Принято письмо N1101 03O0000M (3132 байт) от <master.akiko@personal.mail> из п/я <postmaster@corporate.mail> (Тема: "cc1"; UID: "0001ca191504037b")
@27.04.2017 19:27:54 00AS Обрабатываем письмо 03O0000M (3132 байт) от <master.akiko@personal.mail> для <it@corporate.mail>;<nach_it@corporate.mail>;<progr_pdo@corporate.mail> (Тема: "cc1")
 27.04.2017 19:27:54 00AS Начали сортировку "Main sorter"... Получатели: <it@corporate.mail>;<nach_it@corporate.mail>;<progr_pdo@corporate.mail>
 27.04.2017 19:27:54 00AS Закончили сортировку "Main sorter". Получатели: <it@corporate.mail>;<nach_it@corporate.mail>;<progr_pdo@corporate.mail>
 27.04.2017 19:27:54 00AS Начали сортировку "Main sorter"... Получатели: <it@corporate.mail>;<nach_it@corporate.mail>;<progr_pdo@corporate.mail>
 27.04.2017 19:27:54 00AS Закончили сортировку "Main sorter". Получатели: <it@corporate.mail>;<nach_it@corporate.mail>;<progr_pdo@corporate.mail>
@27.04.2017 19:27:54 00AS Доставлено письмо 03O0000M (3171 байт) от <master.akiko@personal.mail> для <it@corporate.mail> (Тема: "cc1")
@27.04.2017 19:27:54 00AS Доставлено письмо 03O0000M (3171 байт) от <master.akiko@personal.mail> для <nach_it@corporate.mail> (Тема: "cc1")
@27.04.2017 19:27:54 00AS Доставлено письмо 03O0000M (3171 байт) от <master.akiko@personal.mail> для <progr_pdo@corporate.mail> (Тема: "cc1")
 27.04.2017 19:27:54 00AQ Закончили приём почты из внешнего п/я <postmaster@corporate.mail>

_________________
WBR, Akiko.
Back to top
View user's profile Send private message
PWL
CMS Developer
CMS Developer


Joined: 15 Oct 2005
Posts: 689

PostPosted: 28 Apr 2017 22:00 (Fri)    Post subject: Re: Обработка полей CC: и BCC: при обнаружении дубликатов. Reply with quote

Akiko wrote:
В настройках внешнего ящика указано извлекать получателей из полей To: Cc: Bcc:.

Настройка на "Bcc:" здесь некорректна. Это скрытые получатели, поле "Bcc:" видит только отправитель и при отправке письма на почтовый сервер это поле не передается. Т.е. у вас никогда ничего из него не извлечётся, его просто не будет в полученном другой стороне письме.

Включите отладочный уровень лога в CMS и повторите свой эксперимент. В отладочном логе будут видны заголовки писем.

И раз у вас все письма падают в один внешний ящик, то они и получаются дубликатами с точки зрения сервера. Подумайте, как вы их собирались дальше сортировать, если в них поля "Bcc" фактически нет? Без контроля на дубликаты все копии этих писем обработались бы одинаково.
Back to top
View user's profile Send private message
Akiko
Subscriber
Subscriber


Joined: 30 Nov 2015
Posts: 16

PostPosted: 01 May 2017 9:44 (Mon)    Post subject: Re: Обработка полей CC: и BCC: при обнаружении дубликатов. Reply with quote

Akiko wrote:
В настройках внешнего ящика указано извлекать получателей из полей To: Cc: Bcc:.

PWL wrote:
Настройка на "Bcc:" здесь некорректна. Это скрытые получатели, поле "Bcc:" видит только отправитель и при отправке письма на почтовый сервер это поле не передается. Т.е. у вас никогда ничего из него не извлечётся, его просто не будет в полученном другой стороне письме.

Это поле не может не передаваться на сервер, иначе, письмо никуда не дойдет. Это поле значит, что получатели не увидят других получателей, а только себя. Как видно из лога, поле прекрасно передается при отправке, присутствует в получаемом письме и обрабатывается.

PWL wrote:
Включите отладочный уровень лога в CMS и повторите свой эксперимент. В отладочном логе будут видны заголовки писем.

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

PWL wrote:
И раз у вас все письма падают в один внешний ящик, то они и получаются дубликатами с точки зрения сервера. Подумайте, как вы их собирались дальше сортировать, если в них поля "Bcc" фактически нет? Без контроля на дубликаты все копии этих писем обработались бы одинаково.

Уже думал об этом, но останавливает то, что без обработки на дубликаты письма множились по количеству адресатов - это неприемлемый вариант. Возможно, в новой версии это исправлено. Сегодня выходной, почта не будет сильно загружена, буду проверять без контроля на дубликаты.

UPD: Проверил без контроля на дубликаты. Да, теперь все обрабатывается правильно - письмо с копиями не множится, приходит одно и раздается указанным адресатам. Письма со скрытыми копиями приходят по количеству скрытых копий, каждое своему адресату. Спасибо, значит размножение копий уже исправлено.
Кстати, Гугл при доставке писем, не стесняясь показывает всем скрытые копии Smile

_________________
WBR, Akiko.
Back to top
View user's profile Send private message
PWL
CMS Developer
CMS Developer


Joined: 15 Oct 2005
Posts: 689

PostPosted: 02 May 2017 18:47 (Tue)    Post subject: Re: Обработка полей CC: и BCC: при обнаружении дубликатов. Reply with quote

Akiko wrote:
Akiko wrote:
В настройках внешнего ящика указано извлекать получателей из полей To: Cc: Bcc:.

PWL wrote:
Настройка на "Bcc:" здесь некорректна. Это скрытые получатели, поле "Bcc:" видит только отправитель и при отправке письма на почтовый сервер это поле не передается. Т.е. у вас никогда ничего из него не извлечётся, его просто не будет в полученном другой стороне письме.

Это поле не может не передаваться на сервер, иначе, письмо никуда не дойдет. Это поле значит, что получатели не увидят других получателей, а только себя. Как видно из лога, поле прекрасно передается при отправке, присутствует в получаемом письме и обрабатывается.

На самом деле дойдет, так как адрес получателя "скрытой копии" передаётся в конверте письма во время SMTP-сессии (командой RCPT TO).

Но всё же я поправлюсь, был не прав, согласно RFC 822, поле "Bcc" не включается в заголовок письма только для получателей "To" и "Cc".
Quote:
4.5.3. BCC / RESENT-BCC
This field contains the identity of additional recipients of
the message. The contents of this field are not included in
copies of the message sent to the primary and secondary reci-
pients. Some systems may choose to include the text of the
"Bcc" field only in the author(s)'s copy, while others may
also include it in the text sent to all those indicated in the
"Bcc" list.

Это поле содержит идентификаторы дополнительных получателей
сообщения. Содержимое этого поля не включается в
копии сообщения, отправленного первичным и вторичным получа-
телям. Некоторые системы могут выбрать включение текста
поля "Bcc" только в копию автора(ов), в то время как другие могут
также включить его в текст, отправленный всем, указанным в
списке "Bcc".

Как написано, для скрытых получателей зависит от реализации систем (клиента/сервера не уточняется): "могут включать поле «Bcc» только в копию автора(ов), в то время как другие могут также включить его в текст, отправленный всем, указанным в списке «Bcc»."
Опять же нет разъяснения показывать каждому скрытому получателю только себя самого или всех...

PWL wrote:
Включите отладочный уровень лога в CMS и повторите свой эксперимент. В отладочном логе будут видны заголовки писем.

Akiko wrote:
При отладке лог сильно "пухнет" и с ним сложно работать, тем более, в данном случае обычного уровня отладки достаточно, чтобы понять происходящее. Адресаты, указанные как обычные копии писма получают все, как скрытые - только первый указанный.

На время эксперимента для одного письма не "опух" бы Smile

PWL wrote:
И раз у вас все письма падают в один внешний ящик, то они и получаются дубликатами с точки зрения сервера. Подумайте, как вы их собирались дальше сортировать, если в них поля "Bcc" фактически нет? Без контроля на дубликаты все копии этих писем обработались бы одинаково.

Akiko wrote:
Уже думал об этом, но останавливает то, что без обработки на дубликаты письма множились по количеству адресатов - это неприемлемый вариант. Возможно, в новой версии это исправлено. Сегодня выходной, почта не будет сильно загружена, буду проверять без контроля на дубликаты.

UPD: Проверил без контроля на дубликаты. Да, теперь все обрабатывается правильно - письмо с копиями не множится, приходит одно и раздается указанным адресатам. Письма со скрытыми копиями приходят по количеству скрытых копий, каждое своему адресату. Спасибо, значит размножение копий уже исправлено.
Кстати, Гугл при доставке писем, не стесняясь показывает всем скрытые копии Smile

Видимо ранее у вас проблема с дубликатами была в том что поле "Bcc" содержало всех скрытых получателей, а теперь только одного, т.е. "каждый получатель скрытой копии видит только себя".

UPD: Но думается мне, что теперь вы получите дубликаты для основных получателей, которые будут в "To" и "Cc". Скрытые-то получат по одному разу, а вот все остальные еще и по числу скрытых.

UPD2: Кстати, провел эксперимент с клиентом The Bat! - он, например, не передает в заголовке письма поле "Bcc" и не размножает письма по количеству получателей в "Bcc", всё уходит одним письмом.


Last edited by PWL on 03 May 2017 17:34 (Wed); edited 2 times in total
Back to top
View user's profile Send private message
PWL
CMS Developer
CMS Developer


Joined: 15 Oct 2005
Posts: 689

PostPosted: 03 May 2017 17:11 (Wed)    Post subject: Reply with quote

В RFC 2822 еще подробнее написано (для лучшего чтения разбил по пунктам):
Quote:
3.6.3. Destination address fields
...
The "Bcc:" field (where the "Bcc" means "Blind Carbon Copy") contains addresses of recipients of the message whose addresses are not to be revealed to other recipients of the message.
There are three ways in which the "Bcc:" field is used.

1) In the first case, when a message containing a "Bcc:" field is prepared to be sent, the "Bcc:" line is removed even though all of the recipients (including those specified in the "Bcc:" field) are sent a copy of the message.

2) In the second case, recipients specified in the "To:" and "Cc:" lines each are sent a copy of the message with the "Bcc:" line removed as above, but the recipients on the "Bcc:" line get a separate copy of the message containing a "Bcc:" line. (When there are multiple recipient addresses in the "Bcc:" field, some implementations actually send a separate copy of the message to each recipient with a "Bcc:" containing only the address of that particular recipient.)

3) Finally, since a "Bcc:" field may contain no addresses, a "Bcc:" field can be sent without any addresses indicating to the recipients that blind copies were sent to someone.

Which method to use with "Bcc:" fields is implementation dependent, but refer to the "Security Considerations" section of this document for a discussion of each.

Перевод с помощью translate.google.com:
Quote:
3.6.3. Поля адреса получателя
...
Поле "Bcc:" (где "Bcc:" означает "Blind Carbon Copy" (Скрытая копия)) содержит адреса получателей сообщения, адреса которых не должны быть показаны другим получателям сообщения.
Существует три способа использования поля "Bcc:".

1) В первом случае, когда сообщение, содержащее поле "Bcc:", подготавливается к отправке, строка "Bcc:" удаляется для каждого из получателей (включая тех, которые указанны в поле "Bcc:") и отправляется копия сообщения.

2) Во втором случае получателям, указанным в строках "To:" и "Cc:", отправляется копия сообщения с удаленной строкой "Bcc:", как указано выше, но получатели в строке "Bcc:" получают отдельную копию сообщения, содержащую строку "Bcc:". (Когда имеется несколько адресов получателей в поле "Bcc:", некоторые реализации фактически отправляют отдельную копию сообщения каждому получателю с "Bcc:", содержащим только адрес этого конкретного получателя.)

3) Наконец, поскольку поле "Bcc:" может не содержать адресов, поле "Bcc:" может быть отправлено без каких-либо адресов, указывающее получателям, что кому-то были отправлены скрытые копии.

Какой метод использовать для полей "Bcc:" зависит от реализации, но обратитесь к разделу "Вопросы безопасности" этого документа для обсуждения каждого.
Back to top
View user's profile Send private message
Akiko
Subscriber
Subscriber


Joined: 30 Nov 2015
Posts: 16

PostPosted: 04 May 2017 18:35 (Thu)    Post subject: Re: Обработка полей CC: и BCC: при обнаружении дубликатов. Reply with quote

PWL wrote:
UPD: Но думается мне, что теперь вы получите дубликаты для основных получателей, которые будут в "To" и "Cc". Скрытые-то получат по одному разу, а вот все остальные еще и по числу скрытых.

Помня размножение копий в версии 3.05, я этого и опасался, но как показала проверка, сейчас, в 3.08, копии из Сс: не множатся, адресаты получают по 1 копии письма, как и положено.
Единственное, что я не проверил - как обработаются письма, в которых будут присутствовать и несколько Сс: и несколько Всс:.

Quote:
3) Наконец, поскольку поле "Bcc:" может не содержать адресов, поле "Bcc:" может быть отправлено без каких-либо адресов, указывающее получателям, что кому-то были отправлены скрытые копии.

Ага... еще и такой вариант бывает, оказывается.
Собственно, с похожего варианта все и началось. Один из сотрудников пожаловался, что к нему не доходят письма из рассылки на наш корпоративный адрес, хотя на личный его адрес эти письма приходят.
Начал смотреть исходники писем, которые должны к нему попадать и никакого упоминания про нашу корпоративную почту в них не увидел, указан только адрес То:, который к нам отношения не имеет, поэтому, до сих пор с трудом понимаю, как такая почта доставляется при отсутствии адресов дополнительных получателей.
Пока решил проблему направлением всей почты без получателей в отдельный ящик, так ее хоть всегда можно найти, если что.

UPD: Кстати, можно как-то направить почту от определенного отправителя определеному получателю? Например, чтобы почта с sender@mail.mail всегда попадала к pupkin@corporate.mail, даже если не указан адрес?

_________________
WBR, Akiko.
Back to top
View user's profile Send private message
PWL
CMS Developer
CMS Developer


Joined: 15 Oct 2005
Posts: 689

PostPosted: 05 May 2017 20:51 (Fri)    Post subject: Re: Обработка полей CC: и BCC: при обнаружении дубликатов. Reply with quote

PWL wrote:
UPD: Но думается мне, что теперь вы получите дубликаты для основных получателей, которые будут в "To" и "Cc". Скрытые-то получат по одному разу, а вот все остальные еще и по числу скрытых.

Akiko wrote:
Помня размножение копий в версии 3.05, я этого и опасался, но как показала проверка, сейчас, в 3.08, копии из Сс: не множатся, адресаты получают по 1 копии письма, как и положено.
Единственное, что я не проверил - как обработаются письма, в которых будут присутствовать и несколько Сс: и несколько Всс:.

Я говорю про случай, когда отправляется письмо с не пустым "To" или "Cc" и не пустым "Bcc". В начале темы, как я понял, вы эксперементировали отдельно с "To, Cc" и отдельно с "Bcc". Письма могут размножаться именно при наличии "Bcc" - см. 2-й случай из RFC.

Quote:
3) Наконец, поскольку поле "Bcc:" может не содержать адресов, поле "Bcc:" может быть отправлено без каких-либо адресов, указывающее получателям, что кому-то были отправлены скрытые копии.

Akiko wrote:
Ага... еще и такой вариант бывает, оказывается.
Собственно, с похожего варианта все и началось. Один из сотрудников пожаловался, что к нему не доходят письма из рассылки на наш корпоративный адрес, хотя на личный его адрес эти письма приходят.
Начал смотреть исходники писем, которые должны к нему попадать и никакого упоминания про нашу корпоративную почту в них не увидел, указан только адрес То:, который к нам отношения не имеет,

А пустое "Bcc" присутствовало? Думаю, что нет, скорее всего у вас был 1-й случай, где "строка "Bcc:" удаляется для каждого из получателей".

Akiko wrote:
поэтому, до сих пор с трудом понимаю, как такая почта доставляется при отсутствии адресов дополнительных получателей.

Доставляется оно очень просто, я уже говорил, клиент по протоколу SMTP посылает серверу команды "RCPT TO" по числу получателей, здесь передается и получатель из "Bcc", потом передается само письмо с заголовком, где поля To, Cc, Bcc уже не играют никакой роли. Письмо будет доставлено по адресам полученным в "RCPT TO". Т.е. сам сервер-то знает куда дальше отправить, он не смотрит, что там в полях To, Cc, Bcc.
Далее в вашем случае, например, письмо падает в общий корпоративный ящик и уже в нем трудно определить кому письмо было направлено на самом деле, если в нем поле "Bcc" отсутствует.
Если же ящик личный, то тут и вопросов нет, упало в ящик - значит этот личный адрес был в "Bcc", даже если оно в письме отсутствует. Ну или письмо было перенаправлено из другого ящика, что тоже умеют делать почти все почтовые службы (пересылка почты с одного адреса на другой).

Akiko wrote:
Пока решил проблему направлением всей почты без получателей в отдельный ящик, так ее хоть всегда можно найти, если что.

UPD: Кстати, можно как-то направить почту от определенного отправителя определеному получателю? Например, чтобы почта с sender@mail.mail всегда попадала к pupkin@corporate.mail, даже если не указан адрес?

Конечно, с помощью сортировщика. Правило такое:

[v] Если: From:"sender@mail.mail"
[v] Добавить получателя: pupkin@corporate.mail
Back to top
View user's profile Send private message
Akiko
Subscriber
Subscriber


Joined: 30 Nov 2015
Posts: 16

PostPosted: 10 May 2017 9:04 (Wed)    Post subject: Re: Обработка полей CC: и BCC: при обнаружении дубликатов. Reply with quote

PWL wrote:
Я говорю про случай, когда отправляется письмо с не пустым "To" или "Cc" и не пустым "Bcc". В начале темы, как я понял, вы эксперементировали отдельно с "To, Cc" и отдельно с "Bcc". Письма могут размножаться именно при наличии "Bcc" - см. 2-й случай из RFC.

Я пробовал присылать письма с одним To: и несколькими Сс: и второй вариант - с одним То: и несколькими Всс:. В первом случае, сортировщик разослал одно письмо по количеству Сс:, во втором случае сортировщик создал по количеству Всс: несколько отдельных писем. В обоих случаях лишних копий не создается.
В настройках проверка на дубликаты отключена, указано извлекать адресатов из То:, Сс: и Всс:

Quote:
А пустое "Bcc" присутствовало? Думаю, что нет, скорее всего у вас был 1-й случай, где "строка "Bcc:" удаляется для каждого из получателей".

Поле Всс: отсутствует совсем. Только То: и оно не наше.
Когда сам присылал тестовые письма с гугла и яндекса, поля Всс: присутствовали и поэтому письма обрабатывались нормально. Проблема с одной конкретной рассылкой пока только образовалась.

Quote:
Доставляется оно очень просто, я уже говорил, клиент по протоколу SMTP посылает серверу команды "RCPT TO" по числу получателей, здесь передается и получатель из "Bcc", потом передается само письмо с заголовком, где поля To, Cc, Bcc уже не играют никакой роли. Письмо будет доставлено по адресам полученным в "RCPT TO". Т.е. сам сервер-то знает куда дальше отправить, он не смотрит, что там в полях To, Cc, Bcc.
Далее в вашем случае, например, письмо падает в общий корпоративный ящик и уже в нем трудно определить кому письмо было направлено на самом деле, если в нем поле "Bcc" отсутствует.
Если же ящик личный, то тут и вопросов нет, упало в ящик - значит этот личный адрес был в "Bcc", даже если оно в письме отсутствует. Ну или письмо было перенаправлено из другого ящика, что тоже умеют делать почти все почтовые службы (пересылка почты с одного адреса на другой).

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

Quote:
Akiko wrote:
Пока решил проблему направлением всей почты без получателей в отдельный ящик, так ее хоть всегда можно найти, если что.

UPD: Кстати, можно как-то направить почту от определенного отправителя определеному получателю? Например, чтобы почта с sender@mail.mail всегда попадала к pupkin@corporate.mail, даже если не указан адрес?

Конечно, с помощью сортировщика. Правило такое:

[v] Если: From:"sender@mail.mail"
[v] Добавить получателя: pupkin@corporate.mail

Да, спасибо, так и сделаю.

_________________
WBR, Akiko.
Back to top
View user's profile Send private message
PWL
CMS Developer
CMS Developer


Joined: 15 Oct 2005
Posts: 689

PostPosted: 10 May 2017 17:59 (Wed)    Post subject: Re: Обработка полей CC: и BCC: при обнаружении дубликатов. Reply with quote

PWL wrote:
Я говорю про случай, когда отправляется письмо с не пустым "To" или "Cc" и не пустым "Bcc". В начале темы, как я понял, вы эксперементировали отдельно с "To, Cc" и отдельно с "Bcc". Письма могут размножаться именно при наличии "Bcc" - см. 2-й случай из RFC.

Akiko wrote:
Я пробовал присылать письма с одним To: и несколькими Сс: и второй вариант - с одним То: и несколькими Всс:. В первом случае, сортировщик разослал одно письмо по количеству Сс:, во втором случае сортировщик создал по количеству Всс: несколько отдельных писем. В обоих случаях лишних копий не создается.
В настройках проверка на дубликаты отключена, указано извлекать адресатов из То:, Сс: и Всс:

Во втором варианте - с одним То: и несколькими Всс: при указании "извлекать адресатов из То:, Сс: и Всс:" письмо должно продублироваться на адресата в To: по количеству адресатов в Bcc: - письма же приходят "по количеству Всс:", как вы пишите, т.е. из каждого дубликата каждый раз извлекается один и тот же получатель из поля To: и один уникальный получатель из Bcc: - это же очевидно. Или вы хотите сказать, что у копий с Bcc:, поле To: пустое?

PWL wrote:
А пустое "Bcc" присутствовало? Думаю, что нет, скорее всего у вас был 1-й случай, где "строка "Bcc:" удаляется для каждого из получателей".

Akiko wrote:
Поле Всс: отсутствует совсем. Только То: и оно не наше.
Когда сам присылал тестовые письма с гугла и яндекса, поля Всс: присутствовали и поэтому письма обрабатывались нормально. Проблема с одной конкретной рассылкой пока только образовалась.

PWL wrote:
Доставляется оно очень просто, я уже говорил, клиент по протоколу SMTP посылает серверу команды "RCPT TO" по числу получателей, здесь передается и получатель из "Bcc", потом передается само письмо с заголовком, где поля To, Cc, Bcc уже не играют никакой роли. Письмо будет доставлено по адресам полученным в "RCPT TO". Т.е. сам сервер-то знает куда дальше отправить, он не смотрит, что там в полях To, Cc, Bcc.
Далее в вашем случае, например, письмо падает в общий корпоративный ящик и уже в нем трудно определить кому письмо было направлено на самом деле, если в нем поле "Bcc" отсутствует.
Если же ящик личный, то тут и вопросов нет, упало в ящик - значит этот личный адрес был в "Bcc", даже если оно в письме отсутствует. Ну или письмо было перенаправлено из другого ящика, что тоже умеют делать почти все почтовые службы (пересылка почты с одного адреса на другой).

Akiko wrote:
Да, поле Всс: изначально должно было быть, иначе в общий корпоративный ящик письмо бы не попало. Получается, что в процессе передачи это поле удалилось и понятно, что из общего ящика его уже неизвестно кому из получателей доставлять. Придется ручками досылать.

Поле Bcc: не обязано быть в письме и письмо попадает в общий корпоративный ящик не по его наличию.
У вас был этот случай реализации:
1) В первом случае, когда сообщение, содержащее поле "Bcc:", подготавливается к отправке, строка "Bcc:" удаляется для каждого из получателей (включая тех, которые указанны в поле "Bcc:") и отправляется копия сообщения.
Кстати, именно этот вариант до сего дня был самым распространенным.

Akiko wrote:
Пока решил проблему направлением всей почты без получателей в отдельный ящик, так ее хоть всегда можно найти, если что.

UPD: Кстати, можно как-то направить почту от определенного отправителя определеному получателю? Например, чтобы почта с sender@mail.mail всегда попадала к pupkin@corporate.mail, даже если не указан адрес?

PWL wrote:
Конечно, с помощью сортировщика. Правило такое:

[v] Если: From:"sender@mail.mail"
[v] Добавить получателя: pupkin@corporate.mail

Akiko wrote:
Да, спасибо, так и сделаю.
Back to top
View user's profile Send private message
Akiko
Subscriber
Subscriber


Joined: 30 Nov 2015
Posts: 16

PostPosted: 14 May 2017 17:12 (Sun)    Post subject: Re: Обработка полей CC: и BCC: при обнаружении дубликатов. Reply with quote

PWL wrote:
Во втором варианте - с одним То: и несколькими Всс: при указании "извлекать адресатов из То:, Сс: и Всс:" письмо должно продублироваться на адресата в To: по количеству адресатов в Bcc: - письма же приходят "по количеству Всс:", как вы пишите, т.е. из каждого дубликата каждый раз извлекается один и тот же получатель из поля To: и один уникальный получатель из Bcc: - это же очевидно. Или вы хотите сказать, что у копий с Bcc:, поле To: пустое?

Нет, поле То: присутствует, разумеется. Просто, если рассылка идет на Сс:, то одно письмо доставляется на То: и по количеству получателей в Сс: не дублируясь, каждому получателю в одном экземпляре. Если рассылка идет на Всс:, то из одного входящего письма создаются копии по количеству Всс: и каждому получателю доставляется по одному уникальному экземпляру.
Может, объясняю не совсем понятно, покажу всю цепочку прохода писем. Исходное письмо с Сс:
Code:
MIME-Version: 1.0
Date: Sun, 14 May 2017 14:38:35 +0300
Delivered-To: master.akiko@personal.mail
Message-ID: <CANZQ6Txtkds6oDWHeDv9Ymk32Rf0XM=TeVUvNGEhM2Qp_-VyGQ@mail.personal.mail>
Subject: test Cc:
From: Vitaliy Chepeleff <master.akiko@personal.mail>
To: master-akiko@addr_to.mail
Cc: Elena Arievna Nekipelova <nach_it@corporate.mail>, "Рогатина Ю.А." <progr_pdo@corporate.mail>, "Сменный инженер ИТ" <it@corporate.mail>
Content-Type: multipart/alternative; boundary="001a1144bec8fbc38d054f7a605a"

--001a1144bec8fbc38d054f7a605a
Content-Type: text/plain; charset="UTF-8"

test

--
WBR, Akiko.

--001a1144bec8fbc38d054f7a605a
Content-Type: text/html; charset="UTF-8"

<div dir="ltr">test<br clear="all"><div><br>-- <br><div class="gmail_signature" data-smartmail="gmail_signature">WBR, Akiko.</div>
</div></div>

--001a1144bec8fbc38d054f7a605a--

Исходное письмо с Всс:
Code:

MIME-Version: 1.0
Bcc: Elena Arievna Nekipelova <nach_it@corporate.mail>, "Рогатина Ю.А." <progr_pdo@corporate.mail>, "Сменный инженер ИТ" <it@corporate.mail>
Date: Sun, 14 May 2017 14:39:20 +0300
Delivered-To: master.akiko@personal.mail
Message-ID: <CANZQ6Tx0Z_RwrkwtWVkYJyXvt_eP3QpHgmaohU=aBqwHZesZJQ@mail.personal.mail>
Subject: test Bcc:
From: Vitaliy Chepeleff <master.akiko@personal.mail>
To: master-akiko@addr_to.mail
Content-Type: multipart/alternative; boundary="001a114116f2b3ca8a054f7a632f"

--001a114116f2b3ca8a054f7a632f
Content-Type: text/plain; charset="UTF-8"

test

--
WBR, Akiko.

--001a114116f2b3ca8a054f7a632f
Content-Type: text/html; charset="UTF-8"

<div dir="ltr">test<br clear="all"><div><br>-- <br><div class="gmail_signature" data-smartmail="gmail_signature">WBR, Akiko.</div>
</div></div>

--001a114116f2b3ca8a054f7a632f--

Письмо с Сс:, полученное на адрес То:
Code:
---cut---
MIME-Version: 1.0
From: Vitaliy Chepeleff <master.akiko@personal.mail>
Date: Sun, 14 May 2017 14:38:35 +0300
Message-ID: <CANZQ6Txtkds6oDWHeDv9Ymk32Rf0XM=TeVUvNGEhM2Qp_-VyGQ@mail.personal.mail>
Subject: test Cc:
To: master-akiko@addr_to.mail
Cc: Elena Arievna Nekipelova <nach_it@corporate.mail>, =?UTF-8?B?0KDQvtCz0LDRgtC40L3QsCDQri7QkC4=?= <progr_pdo@corporate.mail>,
   =?UTF-8?B?0KHQvNC10L3QvdGL0Lkg0LjQvdC20LXQvdC10YAg0JjQog==?= <it@corporate.mail>
Content-Type: multipart/alternative; boundary="94eb2c07cd46010819054f7a6184"
Return-Path: master.akiko@personal.mail

--94eb2c07cd46010819054f7a6184
Content-Type: text/plain; charset="UTF-8"

test

--
WBR, Akiko.

--94eb2c07cd46010819054f7a6184
Content-Type: text/html; charset="UTF-8"

<div dir="ltr">test<br clear="all"><div><br>-- <br><div class="gmail_signature" data-smartmail="gmail_signature">WBR, Akiko.</div>
</div></div>

--94eb2c07cd46010819054f7a6184--

Письмо с Всс:, полученное на адрес То:. Как положено, все Всс: отрезаны.
Code:

---cut---
MIME-Version: 1.0
From: Vitaliy Chepeleff <master.akiko@personal.mail>
Date: Sun, 14 May 2017 14:39:20 +0300
Message-ID: <CANZQ6Tx0Z_RwrkwtWVkYJyXvt_eP3QpHgmaohU=aBqwHZesZJQ@mail.personal.mail>
Subject: test Bcc:
To: master-akiko@addr_to.mail
Content-Type: multipart/alternative; boundary="001a1145b8deb85c59054f7a63c6"
Return-Path: master.akiko@personal.mail

--001a1145b8deb85c59054f7a63c6
Content-Type: text/plain; charset="UTF-8"

test

--
WBR, Akiko.

--001a1145b8deb85c59054f7a63c6
Content-Type: text/html; charset="UTF-8"

<div dir="ltr">test<br clear="all"><div><br>-- <br><div class="gmail_signature" data-smartmail="gmail_signature">WBR, Akiko.</div>
</div></div>

--001a1145b8deb85c59054f7a63c6--

Лог обработки тестовых писем корпоративной почты. Видно, что при Сс: полученное письмо имеет один ID и доставляется с тем же ID получателям, указанным в Сс:. При Всс: полученное письмо имеет один ID, но доставляется с новыми ID каждому из получателей Всс:
Code:
 14.05.2017 14:40:00 0AI3 Начали приём почты из внешнего п/я <postmaster@corporate.mail>...
 14.05.2017 14:40:00 0AI3 Писем во внешнем п/я: 759 (новых 5)
@14.05.2017 14:40:00 0AI3 Принято письмо N756 03P000FN (3129 байт) от <master.akiko@personal.mail> из п/я <postmaster@corporate.mail> (Тема: "test Cc:"; UID: "0001da261504037b")
@14.05.2017 14:40:00 0AI3 Принято письмо N757 03P000FO (3002 байт) от <master.akiko@personal.mail> из п/я <postmaster@corporate.mail> (Тема: "test Bcc:"; UID: "0001da271504037b")
@14.05.2017 14:40:00 0AI4 Обрабатываем письмо 03P000FN (3129 байт) от <master.akiko@personal.mail> для <it@corporate.mail>;<nach_it@corporate.mail>;<progr_pdo@corporate.mail> (Тема: "test Cc:")
 14.05.2017 14:40:00 0AI4 Начали сортировку "Main sorter"... Получатели: <it@corporate.mail>;<nach_it@corporate.mail>;<progr_pdo@corporate.mail>
 14.05.2017 14:40:00 0AI4 Закончили сортировку "Main sorter". Получатели: <it@corporate.mail>;<nach_it@corporate.mail>;<progr_pdo@corporate.mail>
 14.05.2017 14:40:00 0AI4 Начали сортировку "Main sorter"... Получатели: <it@corporate.mail>;<nach_it@corporate.mail>;<progr_pdo@corporate.mail>
 14.05.2017 14:40:00 0AI4 Закончили сортировку "Main sorter". Получатели: <it@corporate.mail>;<nach_it@corporate.mail>;<progr_pdo@corporate.mail>
@14.05.2017 14:40:01 0AI3 Принято письмо N758 03P000FP (3001 байт) от <master.akiko@personal.mail> из п/я <postmaster@corporate.mail> (Тема: "test Bcc:"; UID: "0001da281504037b")
@14.05.2017 14:40:01 0AI4 Антивирус CLA: Проверка письма 03P000FN - ОК
@14.05.2017 14:40:01 0AI4 Доставлено письмо 03P000FN (3168 байт) от <master.akiko@personal.mail> для <it@corporate.mail> (Тема: "test Cc:")
@14.05.2017 14:40:01 0AI4 Доставлено письмо 03P000FN (3168 байт) от <master.akiko@personal.mail> для <nach_it@corporate.mail> (Тема: "test Cc:")
@14.05.2017 14:40:01 0AI4 Доставлено письмо 03P000FN (3168 байт) от <master.akiko@personal.mail> для <progr_pdo@corporate.mail> (Тема: "test Cc:")
@14.05.2017 14:40:01 0AI4 Обрабатываем письмо 03P000FO (3002 байт) от <master.akiko@personal.mail> для <progr_pdo@corporate.mail> (Тема: "test Bcc:")
 14.05.2017 14:40:01 0AI4 Начали сортировку "Main sorter"... Получатели: <progr_pdo@corporate.mail>
 14.05.2017 14:40:01 0AI4 Закончили сортировку "Main sorter". Получатели: <progr_pdo@corporate.mail>
 14.05.2017 14:40:01 0AI4 Начали сортировку "Main sorter"... Получатели: <progr_pdo@corporate.mail>
 14.05.2017 14:40:01 0AI4 Закончили сортировку "Main sorter". Получатели: <progr_pdo@corporate.mail>
@14.05.2017 14:40:01 0AI3 Принято письмо N759 03P000FQ (2981 байт) от <master.akiko@personal.mail> из п/я <postmaster@corporate.mail> (Тема: "test Bcc:"; UID: "0001da291504037b")
@14.05.2017 14:40:01 0AI4 Антивирус CLA: Проверка письма 03P000FO - ОК
@14.05.2017 14:40:01 0AI4 Доставлено письмо 03P000FO (3041 байт) от <master.akiko@personal.mail> для <progr_pdo@corporate.mail> (Тема: "test Bcc:")
@14.05.2017 14:40:01 0AI4 Обрабатываем письмо 03P000FP (3001 байт) от <master.akiko@personal.mail> для <nach_it@corporate.mail> (Тема: "test Bcc:")
 14.05.2017 14:40:01 0AI4 Начали сортировку "Main sorter"... Получатели: <nach_it@corporate.mail>
 14.05.2017 14:40:01 0AI4 Закончили сортировку "Main sorter". Получатели: <nach_it@corporate.mail>
 14.05.2017 14:40:01 0AI4 Начали сортировку "Main sorter"... Получатели: <nach_it@corporate.mail>
 14.05.2017 14:40:01 0AI4 Закончили сортировку "Main sorter". Получатели: <nach_it@corporate.mail>
@14.05.2017 14:40:01 0AI4 Антивирус CLA: Проверка письма 03P000FP - ОК
@14.05.2017 14:40:01 0AI4 Доставлено письмо 03P000FP (3040 байт) от <master.akiko@personal.mail> для <nach_it@corporate.mail> (Тема: "test Bcc:")
@14.05.2017 14:40:01 0AI4 Обрабатываем письмо 03P000FQ (2981 байт) от <master.akiko@personal.mail> для <it@corporate.mail> (Тема: "test Bcc:")
 14.05.2017 14:40:01 0AI4 Начали сортировку "Main sorter"... Получатели: <it@corporate.mail>
 14.05.2017 14:40:01 0AI4 Закончили сортировку "Main sorter". Получатели: <it@corporate.mail>
 14.05.2017 14:40:01 0AI4 Начали сортировку "Main sorter"... Получатели: <it@corporate.mail>
 14.05.2017 14:40:01 0AI4 Закончили сортировку "Main sorter". Получатели: <it@corporate.mail>
 14.05.2017 14:40:01 0AI3 Закончили приём почты из внешнего п/я <postmaster@corporate.mail>

Наконец, конечное письмо у корпоративного пользователя. Присутствуют поля То: и все Сс:, как и положено.
Code:
Return-Path: <master.akiko@personal.mail>
Return-path: <master.akiko@personal.mail>
Delivery-date: Sun, 14 May 2017 14:38:38 +0300
---cut---
MIME-Version: 1.0
From: Vitaliy Chepeleff <master.akiko@personal.mail>
Date: Sun, 14 May 2017 14:38:35 +0300
Message-ID: <CANZQ6Txtkds6oDWHeDv9Ymk32Rf0XM=TeVUvNGEhM2Qp_-VyGQ@mail.personal.mail>
Subject: test Cc:
To: master-akiko@addr_to.mail
Cc: Elena Arievna Nekipelova <nach_it@corporate.mail>, =?UTF-8?B?0KDQvtCz0LDRgtC40L3QsCDQri7QkC4=?= <progr_pdo@corporate.mail>,
   =?UTF-8?B?0KHQvNC10L3QvdGL0Lkg0LjQvdC20LXQvdC10YAg0JjQog==?= <it@corporate.mail>
Content-Type: multipart/alternative; boundary="94eb2c07cd46010819054f7a6184"
Received-SPF: pass

--94eb2c07cd46010819054f7a6184
Content-Type: text/plain; charset="UTF-8"

test

--
WBR, Akiko.

--94eb2c07cd46010819054f7a6184
Content-Type: text/html; charset="UTF-8"

<div dir="ltr">test<br clear="all"><div><br>-- <br><div class="gmail_signature" data-smartmail="gmail_signature">WBR, Akiko.</div>
</div></div>

--94eb2c07cd46010819054f7a6184--

И письмо с Всс:. Присутствуют поле То: и поле Всс: конкретного получателя, в связи с чем проблем с доставкой нет. В доставке, с которой начался данный тред поле Всс: отсутствует, а поле То: содержит "не наш" адрес, в результате чего, оно никуда и не доставлялось.
Code:

Return-Path: <master.akiko@personal.mail>
Return-path: <master.akiko@personal.mail>
---cut---
MIME-Version: 1.0
From: Vitaliy Chepeleff <master.akiko@personal.mail>
Date: Sun, 14 May 2017 14:39:20 +0300
Message-ID: <CANZQ6Tx0Z_RwrkwtWVkYJyXvt_eP3QpHgmaohU=aBqwHZesZJQ@mail.personal.mail>
Subject: test Bcc:
To: master-akiko@addr_to.mail
Content-Type: multipart/alternative; boundary="001a1145b8deb85c59054f7a63c6"
Bcc: it@corporate.mail
Received-SPF: pass

--001a1145b8deb85c59054f7a63c6
Content-Type: text/plain; charset="UTF-8"

test

--
WBR, Akiko.

--001a1145b8deb85c59054f7a63c6
Content-Type: text/html; charset="UTF-8"

<div dir="ltr">test<br clear="all"><div><br>-- <br><div class="gmail_signature" data-smartmail="gmail_signature">WBR, Akiko.</div>
</div></div>

--001a1145b8deb85c59054f7a63c6--


PWL wrote:
Поле Bcc: не обязано быть в письме и письмо попадает в общий корпоративный ящик не по его наличию.
У вас был этот случай реализации:
1) В первом случае, когда сообщение, содержащее поле "Bcc:", подготавливается к отправке, строка "Bcc:" удаляется для каждого из получателей (включая тех, которые указанны в поле "Bcc:") и отправляется копия сообщения.
Кстати, именно этот вариант до сего дня был самым распространенным.

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

_________________
WBR, Akiko.
Back to top
View user's profile Send private message
PWL
CMS Developer
CMS Developer


Joined: 15 Oct 2005
Posts: 689

PostPosted: 15 May 2017 16:17 (Mon)    Post subject: Reply with quote

Я имел ввиду такой вариант, когда в To тоже корпоративный адрес:
Code:
To: test@corporate.mail
Bcc: Elena Arievna Nekipelova <nach_it@corporate.mail>, "Рогатина Ю.А." <progr_pdo@corporate.mail>, "Сменный инженер ИТ" <it@corporate.mail>

test@corporate.mail получит 4 копии, если письма дублируются по числу адресов в Bcc (одну свою и 3 от копий по Bcc).

И еще у вас письма проходят 2 раза через сортировщик "Main sorter" - это излишне. Видимо у вас в настройках внешнего ящика указано "направлять в сортировщик "Main sorter"", но в этот сортировщик письма падают итак всегда, т.к. это основной сортировщик, который указан в Обработка - Сортировщики - Основной сортировщик.
Code:
 14.05.2017 14:40:01 0AI4 Начали сортировку "Main sorter"... Получатели: <it@corporate.mail>
 14.05.2017 14:40:01 0AI4 Закончили сортировку "Main sorter". Получатели: <it@corporate.mail>
 14.05.2017 14:40:01 0AI4 Начали сортировку "Main sorter"... Получатели: <it@corporate.mail>
 14.05.2017 14:40:01 0AI4 Закончили сортировку "Main sorter". Получатели: <it@corporate.mail>
 14.05.2017 14:40:01 0AI3 Закончили приём почты из внешнего п/я <postmaster@corporate.mail>
Back to top
View user's profile Send private message
Akiko
Subscriber
Subscriber


Joined: 30 Nov 2015
Posts: 16

PostPosted: 17 May 2017 12:05 (Wed)    Post subject: Reply with quote

PWL wrote:
Я имел ввиду такой вариант, когда в To тоже корпоративный адрес:
Code:
To: test@corporate.mail
Bcc: Elena Arievna Nekipelova <nach_it@corporate.mail>, "Рогатина Ю.А." <progr_pdo@corporate.mail>, "Сменный инженер ИТ" <it@corporate.mail>

test@corporate.mail получит 4 копии, если письма дублируются по числу адресов в Bcc (одну свою и 3 от копий по Bcc).

Я понял о каком варианте речь, но пока таких рассылок не имеем и надеюсь, не придется Smile

PWL wrote:
И еще у вас письма проходят 2 раза через сортировщик "Main sorter" - это излишне. Видимо у вас в настройках внешнего ящика указано "направлять в сортировщик "Main sorter"", но в этот сортировщик письма падают итак всегда, т.к. это основной сортировщик, который указан в Обработка - Сортировщики - Основной сортировщик.
Code:
 14.05.2017 14:40:01 0AI4 Начали сортировку "Main sorter"... Получатели: <it@corporate.mail>
 14.05.2017 14:40:01 0AI4 Закончили сортировку "Main sorter". Получатели: <it@corporate.mail>
 14.05.2017 14:40:01 0AI4 Начали сортировку "Main sorter"... Получатели: <it@corporate.mail>
 14.05.2017 14:40:01 0AI4 Закончили сортировку "Main sorter". Получатели: <it@corporate.mail>
 14.05.2017 14:40:01 0AI3 Закончили приём почты из внешнего п/я <postmaster@corporate.mail>

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

_________________
WBR, Akiko.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Courier Mail Server Forum Index -> Courier Mail Server 3.xx All times are GMT + 4 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


Powered by phpBB © 2001, 2005 phpBB Group