Показано с 1 по 2 из 2

Тема: Письмо отправляю двум адресатам - надо письмо переместилось после отправки в 2 папки

  1. #1
    Павел
    Павел вне форума
    Новичок
    Регистрация
    09.07.2012
    Сообщений
    1

    Письмо отправляю двум адресатам - надо письмо переместилось после отправки в 2 папки

    Добрый день!

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

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

    На практике письмо оказывается только в папке "Сидоров", если он идёт первым в списке адресатов. Как реализовать так, чтобы письмо оказалось и в папке "отправленное Сидорову", и в папке "отправленное Петрову", но при этом удалилось из папки "Отправленное"?

  2. #2
    Yurek
    Yurek вне форума
    Участник
    Регистрация
    31.05.2012
    Адрес
    Санкт-Петербург
    Сообщений
    105
    Самое простое, что придумалось по Вашей задаче это создание 3-х правил. Ниже они расположены в порядке выполнения (это имеет значение):

    Правило #1
    Название
    sid+pet
    Условие:
    Адресат содержит 'sidorov' И Адресат содержит 'petrov'
    Действие:
    Копировать в папку 'sidorov'
    Копировать в папку 'petrov'
    Удалить письмо

    В формате для вставки прямо в Сортировщик писем:
    Код:
    $$$$ TB! Message Filter $$$$
    beginFilter
    UID: [57EE1D2E.01CD6654.0E4A25DE.29F1B95B]
    Name: sid+pet
    Filter: {\0D\0A\20`1`0`sidorov\0D\0A0`1`0`petrov\0D\0A}
    CopyMessage AutoFolder folder \5C\5Ctemp\5Csidorov
    CopyMessage AutoFolder folder \5C\5Ctemp\5Cpetrov
    Delete
    IsContinue
    IsActive
    Ignore
    endFilter
    Правило #2
    Название
    sid
    Условие:
    Адресат содержит 'sidorov'
    Действие:
    Переместить в папку 'sidorov'
    Код:
    $$$$ TB! Message Filter $$$$
    beginFilter
    UID: [8B3ADBF3.01CD6655.0F98D1BC.10098CB1]
    Name: sid
    Filter: {\0D\0A\20`1`0`sidorov\0D\0A}
    MoveMessage AutoFolder folder \5C\5Ctemp\5Csidorov
    IsContinue
    IsActive
    Ignore
    endFilter
    Правило #3
    Название
    pet
    Условие:
    Адресат содержит 'petrov'
    Действие:
    Переместить в папку 'petrov'
    Код:
    $$$$ TB! Message Filter $$$$
    beginFilter
    UID: [27465E1D.01CD665C.18509D33.1441E204]
    Name: pet
    Filter: {\0D\0A\20`1`0`petrov\0D\0A}
    MoveMessage AutoFolder folder \5C\5Ctemp\5Cpetrov
    IsContinue
    IsActive
    Ignore
    endFilter
    Были ещё задумки, но этот принцип точно работает. Его недостаток в том, что он пригоден для двух адресатов. Если их больше, то количество правил увеличивается в геометрической прогресии и нужно придумывать что-то другое.
    Но конкретно на сформулированную Вами задачу я дал решение, хотя и предполагаю, что говоря про двух адресатов Вы подразумевали множество.

    Добавлено позже
    По-новой осознал задачу, поэтому написанный выше вариант уже не кажется хорошим.
    Можно создать на каждого адресата свой фильтр по правилу "Адресат содержит [фамилия]", поместив их вверху списка фильтров. Создать фильтр, замыкающий этот список, где все письма удаляются по правилу, например,
    "Адресат соответствует любому из
    [фамилия1<Enter>
    фамилия2<Enter>
    фамилия3<Enter>

    фамилияN<Enter>]"

    Самый лучший вариант, не приводящий к размножению писем, состоит в использовании виртуальных папок. Создаётся виртуальная папка, которая "следит" за папкой "Входящие" или любой другой, как укажете. Слежение заключается, в том числе, в постоянной отработке фильтра, указанного в свойствах папки, там есть возможности подобные обычному сортировщику писем и можно тоже создать фильтр по Адресату.
    Чтобы сама папка Входящие не была напичкана письмами (не только неудобно, но и стабильность и скорость работы программы тоже страдает) можно создать фильтр копирующий письма с интересующими адресатами в какую-то промежуточную папку, а уже за ней следить из виртуальных или применять к ней фильтры. Для отфильтровки целых групп адресатов лучше использовать в фильтрах тэг, ссылающийся на группу в адресной книге - тогда не придётся весь список адресатов впихивать в фильтр, а можно будет указать просто тэг.

    Есть ещё варианты решения, но наверное этих достаточно. Например, можно было бы сделать фильтр, создающий новое форматированное письмо, где в теле шаблона навертеть какие угодно макросы, например, чтобы письмо выглядело как оригинал, но не содержало прикреплённых файлов, но содержало их список (экономит место и не раздувает базу писем), а также можно в теле письма указать какую-то ещё важную информацию. Единственный, часто существенный, недостаток - будут изменены некоторые параметры письма - время создания, отправки, ID-письма. Завершающий фильтр должен стоять внизу списка фильтров и опять же затирать письма.

    Если адресатов по которым надо отфильтровывать много, то можно существенно упростить фильтры используя возможности Адресной книги (АК), а именно, создав там адресатов и поместив их в группы. Тогда можно довольно простым и кратким фильтром отправить письма в соответствующие папки, отсортировывая письма по адресатам, группам АК, организациям и прочим параметрам.
    Для примера, создал фильтр, отрабатывающий Вашу задачу и при этом очень компактный. Привожу текст фильтра, который Вы можете выделить и скопировать через буфер обмена прямо в раздел фильтров Отправиленные - при этом там автоматически образуется фильтр.

    Код:
    $$$$ TB! Message Filter $$$$
    beginFilter
    UID: [042AD19D.01CD663A.3E713545.6DD9E05B]
    Name: Move_to_Folder
    Filter: {\0D\0A\20`12`AC+BC`0`2\0D\0A}
    Tag: MtoF
    MoveMessage AutoFolder folder \5C\5Ctemp\5C%AbOTOCompany
    IsContinue
    IsActive
    Ignore
    endFilter
    Поясню значимые поля данного фильтра, хотя многое станет ясно когда Вы его вставите в Сортировщек писем (выделяем текст фильтра выше, надимаем Ctrl+C, переходим в Сортировщик писем, выбираем раздел фильтров Отправленные письма, нажимаем Ctrl+V).
    Name: - просто произвольное название фильтра, которое было бы напоминало бы о его назначении.
    Filter: {\0D\0A\20`12`AC+BC`0`2\0D\0A} - собственно здесь закодирована суть фильтра, а именно Условие -> Группа адресов - [AC+BC] содержит -> все адресаты
    AC и BC - это псевдонимы групп в Адресной книге, которые я сам задал. Например, AC является псевдонимом адресной группы Automotive_Company, а BC - группы Building_Company. Групп можно указать сколько угодно, не только две как в примере. В каждой группе можно задать много адресатов, относящихся к соответствующей компании. В данном случае это строительная и автомобильная компания. У каждого адресата кроме адреса электронной почты задано название компании, например, "Automotive Company" и "Building Company" (без знака подчёркивания, с пробелом, чтобы не путать с названием самих адресных групп).
    Tag: MtoF - название тэга которое тоже произвольно задано. В руководстве говориться, что его можно потом использовать вызвав макрос %Tag, но мне не удалось.
    Приводится пример, со строкой в фильтре "MoveMessage AutoFolder folder \5C\5CBatTalk\5CRitLabs\5C%Tag", но почему-то макрос %Tag не подставляет информацию из поля тэг, указанного в фильтре. В итоге я использовал другие макросы.
    MoveMessage AutoFolder folder \5C\5Ctemp\5C%AbOTOCompany - действие по срабатыванию фильтра, а именно, перенос писем в папку ящика temp, название которой формируется на основании данных макроса %AbOTOCompany (название компании, взятого из адресной книги, найденного по адресу из поля TO письма, то есть по получателю). При этом если папка не существовала, то она будет создана. Место этого макроса может быть любой другой. Сам макрос %AbOTOCompany относится к работе с информацией из АК и является составным - его имя формируется из нескольких частей по формату %AbnnnPPP (подробнее смотрите в руководстве).
    IsContinue - фильтры следующие за этим фильтром будут отрабатыватся.
    IsActive - фильтр активен.

    Вам придётся немного поменять поля фильтра под свои условия, после его вставки в Сортировщик писем. Это касается прежде всего названия ящика (в примере это ящик 'temp'), псевдонимы групп из Адресной книги (в примере это AC и BC). Этого будет достаточно чтобы фильтр заработал в Вашем почтовом клиенте.

    После проверки последнего варианта пришёл к выводу, что в этом виде он не раскладывает письма с несколькими адресатами в разные папки как должен. Буду дальше копать, может чего получится…

    --
    Спасибо мне за отзывчивость!
    Последний раз редактировалось Yurek; 20.07.2012 в 13:56. Причина: Добавил ещё вариантов

Похожие темы

  1. Ответов: 0
    Последнее сообщение: 10.01.2007, 12:59
  2. Ответов: 1
    Последнее сообщение: 20.09.2006, 16:46
  3. нулевой размер аттача после отправки письма
    от Dmitriy05 в разделе The Bat!: вопросы и ответы
    Ответов: 6
    Последнее сообщение: 22.09.2005, 16:55
  4. как удалить письмо из папки IMAP
    от somerek в разделе The Bat!: вопросы и ответы
    Ответов: 3
    Последнее сообщение: 03.03.2004, 19:13
  5. Имеется письмо, которое надо отправить в 58 адр…
    от svlad в разделе The Bat!: вопросы и ответы
    Ответов: 5
    Последнее сообщение: 23.12.2003, 01:18