Добрый день, коллеги.

Имеются конфигурации КА 1, УПП, УТ 10.3 (в разных местах, вопрос гипотетический), развернутые под RDP в обычном режиме, или remote app.
Клиентские компьютеры находятся под управлением ОС Windows, в разных филиалах (в пределах маршрутизируемой внутренней сети, связанной по VPN, но не в одном сегменте с сервером). Отказаться от RDP нельзя, т.к. скорость и надежность связи с клиентскими компьютерами не позволяет вынести толстый клиент на них, что бы, конечно, все упростило.

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

Штатный почтовый клиент, встроенный в конфигурацию, использовать бы при этом не хотелось, из за его убогости и опасения быстро загадить базу.
На клиентских компьютерах локальных имеется MS Outlook (иногда thunderbird, но можно переделать), с архивом почты (что дополнительно делает использование штатного почтового клиента конфигурации нежелательным, т.к. архив раздвоится), ящики индивидуальны у каждого пользователя, доступ к ним можно осуществить по SMTP/POP и IMAP4.

В связи с этим сломал всю голову, как это организовать.
Навскидку приходит несколько вариантов.
1. В настройках пользователей в 1С прописываем каждому ящик, логин и пароль. Перехватываем функцию отправки почты, там делаем свое письмо, авторизуемся через IMAP4, и в какую-то почтовую папку на сервер IMAP запихиваем это письмо, как черновик.
Outlook на конкретном рабочем месте его вытягивает через синхронизацию, пользователь перетаскивает черновик в исходящие, редактирует, отправляет контрагенту.
Пока остановился на том, что не знаю, как через штатный IMAP4 клиент сохранить письмо в папке. Отправить - получается, повесить как черновик - не выходит.

2. Попытаться 1С-кой поддеть клиентский Outlook через Automation (COM, наверное - пардон, я дилетант в этой части Windows) по сети, и завести в нем письмо. Возникают правда вопросы:
- как надежно настроить доступ к Outlook по сети,
- как 1С поймет, с какого IP-адреса (на котором дергать Outlook), соединяется текущий пользователь RDP, т.к. максимум что я могу легко выцепить из Windows под 1С - это имя компьютера, а поскольку клиентские компьютеры находятся в разных сегментах сети, то просто так понять его IP-адрес не получится.
Получается как-то ненадежно.
Привязывать жестко пользователей к IP-адресам тоже бы не хотелось. Несистемненько.

3. Написать "не на 1С" брокер, серверная часть которого находится на RDP-сервере, и принимает от 1С по HTTP сгенерированные письма. Затем уведомляет клиентскую часть брокера (находится на клиентском компьютере, заранее прописана в автозапуск, соединилась с серверной частью и зарегистрировалась по имени пользователя) о том, что надо вывести на экран письмо, посылает ей eml-файл, который та принимает и скармливает клиентскому Outlook-у локально.
Получается забавно, но крайне сложно и долго писать эту упряжку.

4. Завести на сервере общую папку, в которую 1С скидывало бы сгенерированные письма. На клиент повесить брокера, который бы ежесекундно опрашивал папку по сети, выдергивал с какой-то логикой (например, по имени ящика отправителя) сделанные именно этим пользователем письма, и скармливал бы локально Outlook-у.
Получается постоянное шуршание сетью Microsoft и дисками сервера.
Можно конечно повесить шару на ramdisk конечно, но получается совсем костыльно. Плюс еще ненулевой интервал опроса будет завешивать пользователей в ожидании открывающегося письма.

А может я вообще загоняюсь и как-то можно сделать все проще.

Может быть кто решал такую задачу, и подскажет (или продаст) надежное решение?
---
1. Если сервер почтовый MS Exchange, на него можно кидать xml запросы, технология называется EWS в папку пользователя "черновики"
делал аналогичную систему, только для календаря

2. самое простое решение - поставить на клиента PDF принтер, на сервере печатать на этот принтер, на клиенте будет открываться окно, откуда и наживать кнопку "отправить по почте"
---
Перенести из одной папки в другую, пример.
---
как уже сказали отправлять от системной учетки письмо пользователю, он получает его и далее пересылает клиенту и все довольны!
---
Штатный почтовый клиент, встроенный в конфигурацию, использовать бы при этом не хотелось, из за его убогости и опасения быстро загадить базу.
Так это только настройки подключения к почте. В 1С письма не сохраняются (КА 1, УПП, УТ 10.3).

Поэтому, если завели несколько настроек (Органайзер -Учетные записи), пользователи при отправке могут выбрать от имени кого отправить письмо.
Если нужно сохранять отправленные, я отправляю СкрытуюКопию на почтовый ящик бухгалтера, при отправке.
---
Короче, взвесил все за и против, провел полевое тестирование, и сделал своим способом №4.
4. Завести на сервере общую папку, в которую 1С скидывало бы сгенерированные письма. На клиент повесить брокера, который бы ежесекундно опрашивал папку по сети, выдергивал с какой-то логикой (например, по имени ящика отправителя) сделанные именно этим пользователем письма, и скармливал бы локально Outlook-у.
Брокер написал на Lazarus-е, вспомнил молодость и Delphi.
Работает. С Outlook-ом или ThunderBird-ом на клиенте. Хоть и криво, но решение, и разворачивается легко. Как сказал Ржевский, "....а там паркет старый".

Как доведу до ума, опубликую.
Спасибо всем за хорошие идеи, соответствовавшие моим вопросам.
---
Опубликовал решение тут
https://infostart.ru/public/906551/
---
как уже сказали отправлять от системной учетки письмо пользователю, он получает его и далее пересылает клиенту и все довольны!
---
Можем продать наши наработки.
---
Перенести из одной папки в другую, пример.
---
У меня, администраторы завели логин для 1с в outlook-e, у которого пароль не истекает каждые 40 дней.
И от имени этого логина отправляются все письма, пример.
---
Штатный почтовый клиент, встроенный в конфигурацию, использовать бы при этом не хотелось, из за его убогости и опасения быстро загадить базу.
Так это только настройки подключения к почте. В 1С письма не сохраняются (КА 1, УПП, УТ 10.3).

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

Когда-то я делал массовую рассылку (опять таки, раз в месяц отправлялись счета, но надо было отправлять сразу около 2-м тысячам абонентов) таким образом, что 1С помещало eml-файлы на шару специальной linux-овой виртуалки, с которой развернутый в виртуалке скрипт (кажется на питоне или баше, не помню сейчас) забирал, и через sendmail отправлял как письма с таким интервалом, чтобы не превышать лимиты (хостер, как раз Джино, кажется был)
Работает до сих пор, кстати.
---
1. Если сервер почтовый MS Exchange, на него можно кидать xml запросы, технология называется EWS в папку пользователя "черновики"
делал аналогичную систему, только для календаря

2. самое простое решение - поставить на клиента PDF принтер, на сервере печатать на этот принтер, на клиенте будет открываться окно, откуда и наживать кнопку "отправить по почте"
---
Короче, взвесил все за и против, провел полевое тестирование, и сделал своим способом №4.
4. Завести на сервере общую папку, в которую 1С скидывало бы сгенерированные письма. На клиент повесить брокера, который бы ежесекундно опрашивал папку по сети, выдергивал с какой-то логикой (например, по имени ящика отправителя) сделанные именно этим пользователем письма, и скармливал бы локально Outlook-у.
Брокер написал на Lazarus-е, вспомнил молодость и Delphi.
Работает. С Outlook-ом или ThunderBird-ом на клиенте. Хоть и криво, но решение, и разворачивается легко. Как сказал Ржевский, "....а там паркет старый".

Как доведу до ума, опубликую.
Спасибо всем за хорошие идеи, соответствовавшие моим вопросам.
---
Опубликовал решение тут
https://infostart.ru/public/906551/