Каталог решений - Отправка сообщения посредством почтового клиента Lotus Notes

Отправка сообщения посредством почтового клиента Lotus Notes

Отправка сообщения посредством почтового клиента Lotus Notes

В наличии

Отправка сообщения посредством почтового клиента Lotus Notes из 1С 7,7 и 1с 8

Категория:

Описание

Доброго времени суток.

Недавно столкнулся с необходимостью не только отправлять сообщения по средствам SMTP и POP3 протоколов, но и хранить отправленное сообщение в 
 папке «Отправленные» у пользователей. Для того, чтобы это реализовать, нужно было воспользоваться именно учетной записью конкретного пользователя.
Установить соединение с ЕГО клиентом LN и при помощи ЕГО же клиента осуществить отправку. 
 Есть несколько статей на данную тему, но нигде нет полностью работающего когда, а лишь отрывки…. Попытаюсь исправить ситуацию.

Используемые источники:

http://forum.ru-board.com/topic.cgi?forum=33&topic=0478

http://www.kb.mista.ru/article.php?id=679

Документация LN

 Итак, для 1С 7

 
 Процедура Сформировать ()
	ФайлВложения = "C:\123.txt";ЛотусСессия = CreateObject( "Lotus.NotesSession" );Если ЛотусСессия = "" ТогдаТекстОшибки = "Не установлен Lotus Notes !";
	Сообщить (ТекстОшибки);Иначе
	ЛотусСессия.Initialize("ПАРОЛЬ");
	ПользовательЛотуса = ЛотусСессия.CommonUserName;ИмяФайлаБд = ЛотусСессия.GETENVIRONMENTSTRING("mailFile", 1);
	БазаДанных = ЛотусСессия.GETDATABASE("", ИмяФайлаБД);Если БазаДанных.IsOpen=1 Тогда
	Сообщить ("Лотус готов для работы");Иначе Дирриктория = ЛотусСессия.GETDBDIRECTORY("");
	БазаДанных = Дирриктория.OpenMailDatabase();КонецЕсли;
	ПочтовыйДокумент = БазаДанных.CREATEDOCUMENT();
	ПочтовыйДокумент.AppendItemValue ("Form","Memo");ПочтовыйДокумент.AppendItemValue ("subject","test");ПочтовыйДокумент.AppendItemValue ("SendTo","mail@mail.com");
	ПочтовыйДокумент.AppendItemValue ("SendTo","mail@mail.com");
	ПочтовыйДокумент.AppendItemValue ("Body","тело письма");
	ВложениеПисьма = ПочтовыйДокумент.CREATERICHTEXTITEM("Attachment");
	ВложенныйОбъект=ВложениеПисьма.EMBEDOBJECT(1454, "", ФайлВложения, "Attachment");
	ПочтовыйДокумент.SaveMessageOnSend = 1;
	ПочтовыйДокумент.Save (1, 0);ПочтовыйДокумент.Send (1);КонецЕсли;КонецПроцедуры
Для 1С 8 практически то же самое:

 Процедура ОткрытьЛотус(Команда)
		ФайлВложения = "C:\123.txt";
		ЛотусСессия = Новый COMОбъект( "Lotus.NotesSession" ); Если ЛотусСессия = Неопределено Тогда
		ТекстОшибки = "Не установлен Lotus Notes !";
		Сообщить (ТекстОшибки); Иначе
		ЛотусСессия.Initialize("МойПароль");
		ПользовательЛотуса = ЛотусСессия.CommonUserName;
		ИмяФайлаБд = ЛотусСессия.GETENVIRONMENTSTRING("mailFile", True);
		БазаДанных = ЛотусСессия.GETDATABASE("", ИмяФайлаБД); Если БазаДанных.IsOpen=True Тогда
		Сообщить ("Лотус готов для работы"); Иначе Дирриктория = ЛотусСессия.GETDBDIRECTORY("");
		БазаДанных = Дирриктория.OpenMailDatabase(); КонецЕсли;
		ПочтовыйДокумент = БазаДанных.CREATEDOCUMENT();
		ПочтовыйДокумент.AppendItemValue ("Form","Memo");
		ПочтовыйДокумент.AppendItemValue ("subject","test");
		ПочтовыйДокумент.AppendItemValue ("SendTo","mail.mail.com");
		ПочтовыйДокумент.AppendItemValue ("Body","тело письма");
		ВложениеПисьма = ПочтовыйДокумент.CREATERICHTEXTITEM("Attachment");
		ВложенныйОбъект=ВложениеПисьма.EMBEDOBJECT(1454, "", ФайлВложения, "Attachment");
		ПочтовыйДокумент.SaveMessageOnSend = Истина;
		ПочтовыйДокумент.Save (Истина, Ложь);
		ПочтовыйДокумент.Send (Истина); КонецЕсли; КонецПроцедуры
	

В принципе, код понятен,  сильно объяснять ничего не надо. Показано, как работать с com объектом LN, как создать письмо и прикрепить Аттач.
Недостатки метода — ПАРОЛЬ, и конечно же сам LN ))), но не мы придумываем корпоративные стандарты.
Пароль можно как нибудь шифровать, или набирать разово при первой отправке, а далее хранить где нибудь, допустим, в параметрах сеанса.

has been added to your cart:
Оформление заказа