Monday, February 1, 2016

Отправка почты из под 1C через outlook

В обще дальнейшая часть автоматизации и веселостей от microsoft.
При отправке почтового сообщения через outlook api возникли проблемы

&НаКлиенте
Процедура Отправить(Команда)
Попытка
objOutlook = Новый COMОбъект("Outlook.Application");
Исключение
objOutlook = НЕопределено;
Возврат;
КонецПопытки;
myItem = objOutlook.CreateItem(0);
myRecipient = myItem.Recipients.Add("pd@rl.ua");
myRecipient.Type=1;
myItem.Subject = "Тест "+ТекущаяДата();
//myItem.Attachments.Add("C:\image.jpg");
myItem.HTMLBODY ="TEST";
myItem.Send();
КонецПроцедуры


при чем этот код работал нормально и письма уходили нормально.

А вот при отправке со стороны сервера была проблема


&НаКлиенте
Процедура Отправить(Команда)
ОтправитьНаСервере();
КонецПроцедуры

&НаСервере
Процедура ОтправитьНаСервере()

Попытка
objOutlook = Новый COMОбъект("Outlook.Application");
Исключение
objOutlook = НЕопределено;
Возврат;
КонецПопытки;
myItem = objOutlook.CreateItem(0);
myRecipient = myItem.Recipients.Add("pd@rl.ua");
myRecipient.Type=1;
myItem.Subject = "Тест "+ТекущаяДата();
//myItem.Attachments.Add("C:\image.jpg");
myItem.HTMLBODY ="TEST";
myItem.Send();
//myItem.Display();
КонецПроцедуры



Первично проверил по инету, с наскоку решить проблему не удалось
1. http://infostart.ru/public/325873/ выполняем
Заходим на сервер приложений 1С под локальным админом
Запускаем DCOMCNFG (Консоль настроек "Component Services")
Открываем ветку Console Root -> Component Services -> Computers -> My computer -> DCOM Config
Ищем "Microsoft Excel Application"
Если нашли, то переходим к пункту 4 (Настраиваем свойства DCOM компонента "Microsoft Excel Application")
Закрываем "Component Services"
Настройка реестра
Запускаем REGEDIT
Открываем ветку Computer\HKEY_CLASSES_ROOT\AppID\EXCEL.EXE, если ее нет, то создаем
Создаем в ней строковый параметр AppID = {00020812-0000-0000-C000-000000000046}
Выполняем команду "mmc comexp.msc /32", которая делает то же что и DCOMCONFIG, но позволяет видеть 32 битные компоненты.
После этого в Component Services должен появиться "Microsoft Excel Application"
Настраиваем свойства DCOM компонента "Microsoft Excel Application"
Закладка "Security"
"Launch and Activation Permissions" - Customize - Edit
Добавляем пользователя, под которым запускается агент сервера 1С
Назначем ему только следующие права (allow):
Local Launch
Local Activation
"Access Permissions" - Customize - Edit
Добавляем пользователя, под которым запускается агент сервера 1С
Назначаем ему только следующие права (allow):
Local Access
Закладка "Identity"
Должно быть выбрано "The launching user"
Системные папки
Папка "C:\Windows\SysWOW64\config\systemprofile\Desktop\"
Проверяем наличие папки , если нет -то создаем.
Заходим в свойства этой папки.
Закладка Security
Добавляем, если нет, пользователя, под которым запускается агент сервера 1С
Добавляем право "Read" и "Write"
Папка "C:\Windows\System32\config\systemprofile\Desktop\"
Проверяем наличие папки , если нет -то создаем.
Заходим в свойства этой папки.
Закладка Security
Добавляем, если нет, пользователя, под которым запускается агент сервера 1С
Добавляем право "Read" и "Write"

После этого почта все также не уходила, сделал шаг
2. http://stackoverflow.com/questions/3750605/getting-creating-an-outlook-application-in-windows-7
In start menu select Run
Type dcomcnfg and click OK
Component Services window is opened.
Expand the nodes Component Services -> MyComputer -> DCOM Config .
Right click on the application (Outlook Message Attachment) and select properties.
Click on Identity tab whatever necessary.
Click on “The interactive user" then OK

Вот после этого почта стала уходить нормально.