Имя: Пароль:
1C
 
Отправка почты через Microsoft Exchange Server
0 Samoyloff
 
07.02.08
09:19
Вообщем необходимо связываться с MS Exchange Server-ом и отправлять почту. Стандартные механизмы работают только с smtp. Как вариант можно соединяться с MS Outlook по COM и создавать сообщения в нём.
Есть ли готовые решения на эту тему?
1 samarano
 
07.02.08
09:31
Ну хз... Я в семерке с помощью библиотеки rainbow.dll обращался напрямую к серверу, ищи чтонить типа этого для 8
2 Samoyloff
 
07.02.08
09:32
спасибо... попробую поискать что-нибудь похожее..
3 samarano
 
07.02.08
09:55
Но rainbow говорят загнулась.... Так что надо искать, что-то типа 1с++
4 Шурик71
 
07.02.08
10:16
Не слушай всякую ерунду. 1c++ и  rainbow тут ни при чем. Работай с outlook.application.

Надеюсь, с семерки переведешь....

//*****************************************************
Функция ПослатьЭП(Кому,Тема,Сообщение,Вложить="",Способ)
                             
    MSOutlook = СоздатьОбъект("Outlook.Application");
    Если СпособРассылки = 3 Тогда
         Для ц = 1 по Кому.РазмерСписка() Цикл
              Name = "";  
              Adress = Кому.ПолучитьЗначение(ц,Name);  
              лСтрока = Name+"""" + " <"+Adress+">";
              objMail = MSOutlook.CreateItem(0);//mail
              objMail.BodyFormat = 1;//plain text
              objMail.Body = Сообщение;
              objMail.Subject = Тема;
              objMail.To = лСтрока;  
              objMail.ReplyRecipientNames     = "xxx@yyyyy.ru"          ;
              Если Вложить<>"" Тогда
                   Attachment = objMail.Attachments.Add(Вложить);
              КонецЕсли;
              Если Способ=1 Тогда
                   objMail.Send()    
              Иначе
                   objMail.Save();
              КонецЕсли;
         КонецЦикла;  
    Иначе
         objMail = MSOutlook.CreateItem(0);//mail
         objMail.BodyFormat = 1;//plain text
         objMail.Body = Сообщение;
         objMail.Subject = Тема;
         objMail.ReplyRecipientNames     = "sssss@yyyy.ru"          ;
         Если Вложить<>"" Тогда
              Attachment = objMail.Attachments.Add(Вложить);
         КонецЕсли;
         лСтрока = "";
         Для ц = 1 по Кому.РазмерСписка() Цикл
              Name = "";  
              Adress = Кому.ПолучитьЗначение(ц,Name);  
              Name = СтрЗаменить(Name,"""","'");
              лСтрока = ?(лСтрока="","",лСтрока+"; ");
              лСтрока = лСтрока+"""" +Name+"""" + " <"+Adress+">";
         КонецЦикла;  
         Если СпособРассылки = 1 Тогда
              objMail.To = лСтрока;
         ИначеЕсли СпособРассылки = 2 Тогда
              objMail.BCC = лСтрока;        
              objMail.To = "zzzz@yyyy.ru";        
         Иначе
              objMail.To = лСтрока;
         КонецЕсли;
         Если Способ=1 Тогда
              objMail.Send()    
         Иначе
              objMail.Save();
         КонецЕсли;
    КонецЕсли;
    Возврат 1;
КонецФункции
5 Samoyloff
 
07.02.08
10:38
Спасибо. То что надо.
6 samarano
 
07.02.08
10:40
Ну вообще - то я имел ввиду прямое соединение, и оно работает намного быстрее и лучше COM..