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 

автоматизация приема-отправки
Goto page 1, 2, 3  Next
 
Post new topic   Reply to topic    Courier Mail Server Forum Index -> Courier Mail Server 3.xx
View previous topic :: View next topic  
Author Message
SBV
Subscriber
Subscriber


Joined: 24 Sep 2013
Posts: 18

PostPosted: 04 Oct 2013 11:06 (Fri)    Post subject: автоматизация приема-отправки Reply with quote

Есть почтовые ящики пользователей на внешнем хостинге (user1@mycompany.ru, user2@mycompany.ru и т.д.). Назовем этот сервер External.
Есть также внутренний почтовый сервер (smtp\pop3), к которому соединяются клиенты и который обслуживает внутреннюю почту. Назовем его Local.
Хочется с помощью CMS (отдельный сервер) настроить следующий автомат:
1 заданием 1 забираем по POP3 поступившую почту из External (это понятно как сделать)
2 запускаем некую обработку - внешний скрипт (тоже вроде понятно - цепляем скрипт к Заданию 2)
3 Задание 2 отдает всю поступившую извне почту серверу Local (где ее забирают клиенты по POP3)
4 Задание 2 также забирает почту для отправки наружу с сервера Local
5 запускаем некую обработку - внешний скрипт (тоже вроде понятно - цепляем скрипт к Заданию 1)
6 запускаем Задание 1 для отправки почты наружу и приема поступившей снаружи (goto шаг 1)
Посоветуйте можно ли нечто подобное настроить и как?
Back to top
View user's profile Send private message
NAMOR
CMS Developer


Joined: 15 Oct 2005
Posts: 1079

PostPosted: 04 Oct 2013 11:42 (Fri)    Post subject: Reply with quote

Настроить можно.
На сервере Local домен тоже называется mycompany.ru?
Back to top
View user's profile Send private message Send e-mail Visit poster's website
SBV
Subscriber
Subscriber


Joined: 24 Sep 2013
Posts: 18

PostPosted: 04 Oct 2013 12:54 (Fri)    Post subject: Reply with quote

Да, домен тот же. Это как бы локальная копия внешних ящиков. Кроме, есс-но внутренней почты - она ходит только внутри.
Back to top
View user's profile Send private message
NAMOR
CMS Developer


Joined: 15 Oct 2005
Posts: 1079

PostPosted: 04 Oct 2013 15:29 (Fri)    Post subject: Reply with quote

А что мешает непосредственно на сервере Local настроить приём почты с сервера External и обработку писем скриптами?
Back to top
View user's profile Send private message Send e-mail Visit poster's website
SBV
Subscriber
Subscriber


Joined: 24 Sep 2013
Posts: 18

PostPosted: 04 Oct 2013 15:54 (Fri)    Post subject: Reply with quote

Local не может смотреть наружу по безопасности.
Поэтому мыслится промежуточный CMS как бы в DMZ, который инициирует коннект наружу и внутрь, причем попеременно (во всякий момент только одно соединение активно).
Back to top
View user's profile Send private message
NAMOR
CMS Developer


Joined: 15 Oct 2005
Posts: 1079

PostPosted: 04 Oct 2013 18:23 (Fri)    Post subject: Re: автоматизация приема-отправки Reply with quote

Очень непростая задача...

SBV wrote:
4 Задание 2 также забирает почту для отправки наружу с сервера Local

Подразумевается, что забирает по POP3? В этом случае решить вашу задачу, скорее всего, не получится, поскольку письма, принятые по POP3, не имеют SMTP-конверта с внешними получателями. Вариантов восстановления этих получателей я не вижу.
Допустимо ли, чтобы Local сам по SMTP присылал почту на Middle (сервер в DMZ)? При соблюдении условия попеременного коннекта Middle наружу и внутрь.
В этом случае какое-то решение просматривается.
Back to top
View user's profile Send private message Send e-mail Visit poster's website
GrAnd
CMS Master
CMS Master


Joined: 21 Oct 2005
Posts: 766
Location: г. Коломна

PostPosted: 04 Oct 2013 20:37 (Fri)    Post subject: Reply with quote

А на External для каждого получателя свой п/я или вся корреспонденция валится кучей в один?
_________________
Все, что началось хорошо, закончится плохо.
Все, что началось плохо, закончится еще хуже.
Если вам кажется, что все идет хорошо, значит вы чего-то не замечаете.
Если все закончилось хорошо, то, значит, это еще не конец!
Back to top
View user's profile Send private message
SBV
Subscriber
Subscriber


Joined: 24 Sep 2013
Posts: 18

PostPosted: 05 Oct 2013 0:06 (Sat)    Post subject: Reply with quote

2 NAMOR: ну мне все равно по какому протоколу забирается, есть вариант кроме pop3?
Насчет того что естественней если local посылает я догадывался, но надеялся на какую -то хитрость....
Может надо смириться пусть local посылает - это хуже тк исходящее в dmz, но самое главное как я узнаю когда закончится передача с локала на мидл? Вся логика предполагается крутиться на мидл....
2 Grand: Ящики индивидуальные.
Back to top
View user's profile Send private message
NAMOR
CMS Developer


Joined: 15 Oct 2005
Posts: 1079

PostPosted: 06 Oct 2013 15:31 (Sun)    Post subject: Reply with quote

SBV wrote:
ну мне все равно по какому протоколу забирается, есть вариант кроме pop3?

SMTP.

SBV wrote:
Насчет того что естественней если local посылает я догадывался, но надеялся на какую -то хитрость....

С POP3 у меня не получилось никакой "хитрости" придумать, к сожалению. Очень уж нестандартная задача.

SBV wrote:
Может надо смириться пусть local посылает - это хуже тк исходящее в dmz, но самое главное как я узнаю когда закончится передача с локала на мидл? Вся логика предполагается крутиться на мидл....

Небольшую часть логики придётся вынести на Local.
Идея в том, что для синхронизации сеансов обмена почтой Local и Middle должны обмениваться между собой уведомлениями. И все свои действия по обработке и приёму-отправке почты выполнять только после получения уведомления от "партнёра". А после окончания этих действий, в свою очередь, уведомить "партнёра" об этом.
То есть Middle узнает об окончании передачи с Local при получении от него соответствующего уведомления. А Local об этом узнает, когда завершится его задание отправки (в этот момент и нужно отправить уведомление).
А о том, что нужно начать передачу, Local узнает при получении уведомления от Middle.

Для отправки таких межсерверных уведомлений нужна отдельная очередь и на Local и на Middle с настройкой:
[x] Если число писем не меньше 1, то запустить задание: <Задание планировщика для отправки этой очереди>
Back to top
View user's profile Send private message Send e-mail Visit poster's website
SBV
Subscriber
Subscriber


Joined: 24 Sep 2013
Posts: 18

PostPosted: 07 Oct 2013 9:50 (Mon)    Post subject: Reply with quote

Этот подход с межсерверными "переговорами" подразумевает Local должен быть CMS?
В таком случае у меня есть еще идея - что если обмен Local-Middle сделать просто путем обмена файлами (батник с парой команд move, работает на Local, на Middle просто соотв. папки расшарены или ftp сервер...)
И еще, мы все шаг 4 обсуждаем, а шаг 3 не вызывает аналогичных сомнений? В нем надо передать собранное из внешних индивидуальных ящиков с Middle на Local. Ранее Вы говорили, что при этом "письма, принятые по POP3, не имеют SMTP-конверта".
Back to top
View user's profile Send private message
NAMOR
CMS Developer


Joined: 15 Oct 2005
Posts: 1079

PostPosted: 07 Oct 2013 11:19 (Mon)    Post subject: Reply with quote

SBV wrote:
Этот подход с межсерверными "переговорами" подразумевает Local должен быть CMS?

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

SBV wrote:
В таком случае у меня есть еще идея - что если обмен Local-Middle сделать просто путем обмена файлами (батник с парой команд move, работает на Local, на Middle просто соотв. папки расшарены или ftp сервер...)

Не сработает. Письма из этих файлов попадут в очередь обработки только при перезапуске CMS.

SBV wrote:
И еще, мы все шаг 4 обсуждаем, а шаг 3 не вызывает аналогичных сомнений? В нем надо передать собранное из внешних индивидуальных ящиков с Middle на Local. Ранее Вы говорили, что при этом "письма, принятые по POP3, не имеют SMTP-конверта".

Здесь проблем не возникнет, поскольку можно задействовать функцию "Извлечь локальных получателей из полей" в свойствах внешних ящиков. Таким образом, конверт будет создан автоматически при приёме письма из внешнего ящика.
А вот для извлечения внешних получателей аналогичной функции нет. Просто ни разу подобная задача не возникала.
Back to top
View user's profile Send private message Send e-mail Visit poster's website
SBV
Subscriber
Subscriber


Joined: 24 Sep 2013
Posts: 18

PostPosted: 07 Oct 2013 13:18 (Mon)    Post subject: Reply with quote

NAMOR, спасибо.
Можете в общих чертах накидать план настроек, как Вы сделали в соседней ветке (Задания в планировщике)?
Back to top
View user's profile Send private message
NAMOR
CMS Developer


Joined: 15 Oct 2005
Posts: 1079

PostPosted: 07 Oct 2013 17:51 (Mon)    Post subject: Reply with quote

Часть конкретных настроек я описывал ранее, часть вам и так понятна. Напишу в общих чертах — уточняйте, что неясно.

Middle:
1. По расписанию принимает почту с External.
2. Обрабатывает принятую почту скриптом.
3. Отправляет почту на Local.
4. Отправляет на Local уведомление "отправляй почту".
Local:
5. Получает уведомление от Middle.
6. Отправляет почту на Middle.
7. Отправляет на Middle уведомление "почту отправил".
Middle:
8. Получает уведомление от Local.
9. Обрабатывает принятую почту скриптом.
10. Отправляет принятую почту на External.
11. Переходит к пункту 1.

Все действия должны выполняться строго последовательно. Поэтому нужно запретить приём почты с External по расписанию (п. 1) на время выполнения дальнейших действий.
Для этого в задании приёма с External настройте так:
[x] Продолжить выполнение, если существует файл: AllowReceiveFromExternal.flg
[x] Удалить файл после выполнения
Повторно создавать файл-флаг нужно после п. 10, чтобы вновь разрешить приём почты с External. Например, с помощью bat-файла.

На Middle достаточно бесплатной трёхпользовательской версии CMS.
Важно, чтобы здесь не было создано пользователей с теми же именами, что на Local.
У домена укажите имя как на Local и настройте: "Письма для несуществующих пользователей - Помещать в очередь: <очередь отправки на Local>".
Back to top
View user's profile Send private message Send e-mail Visit poster's website
SBV
Subscriber
Subscriber


Joined: 24 Sep 2013
Posts: 18

PostPosted: 10 Oct 2013 15:04 (Thu)    Post subject: Reply with quote

NAMOR, Вы писали: Для отправки таких межсерверных уведомлений нужна отдельная очередь и на Local и на Middle с настройкой:
[x] Если число писем не меньше 1, то запустить задание: <Задание планировщика для отправки этой очереди>

Я не понимаю, как мне обеспечить, чтобы межсерверное уведомление попало именно в эту очередь. В шаблоне очереди нет, в задании можно указать только шаблон и всё.
Back to top
View user's profile Send private message
NAMOR
CMS Developer


Joined: 15 Oct 2005
Posts: 1079

PostPosted: 10 Oct 2013 17:03 (Thu)    Post subject: Reply with quote

С помощью основного сортировщика.
В шаблоне уведомления укажите получателем, например, cms@local.
В основном сортировщике создайте правило:
Если письмо имеет получателя: cms@local
Выполнить действия только для данных получателей
Поместить письмо в очередь: <очередь для межсерверных уведомлений>
Завершить сортировку письма
Back to top
View user's profile Send private message Send e-mail Visit poster's website
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
Goto page 1, 2, 3  Next
Page 1 of 3

 
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