Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

MS Exchange Получить почту

MS Exchange Получить почту
Я
   Alexoidic
 
19.09.18 - 16:24
Здравствуйте!!!
Пытаюсь получить почту с сервера MS Exchange из 1с, протоколы POP3 & SMTP заблокированы, пытаюсь это сделать через http запросы следующим образом.


Функция СоздатьXMLHTTP()

    
    стрURL="https://ххххххххх/EWS/Services.wsdl";;
    oXMLHTTP = Новый COMОбъект("MSXML2.XMLHTTP");
    oXMLHTTP.open("POST", стрURL, 0, "ххх", "хххххх");
    oXMLHTTP.setRequestHeader("Content-Type", "text/xml");
    Возврат oXMLHTTP;
    
КонецФункции

&НаСервере
Процедура EWSНаСервере()
    Перем tmp;
    
    //ssl = Новый ЗащищенноеСоединениеOpenSSL();//т.к. HTTPS
    //Соединение = Новый HTTPСоединение("хххх",,"хххххххх", "хххххх",,20,ssl);
    //РесурсНаСервере = "/ews/Services.wsdl";
    //
    //Заголовки = Новый Соответствие();
    //Заголовки.Вставить("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
    //Запрос = Новый HTTPЗапрос("GetFolderSoapIn", Заголовки);
    //Запрос.УстановитьТелоИзСтроки("p=1&pp=qqq", "UTF-8");
    //Ответ = Соединение.ОтправитьДляОбработки(Запрос);
    //ТекстОтвета = Ответ.ПолучитьТелоКакСтроку();

    ЗащищенноеСоединение = Новый ЗащищенноеСоединениеOpenSSL();
    WSОпределение = Новый WSОпределения("https://ххххх/ews/Services.wsdl";, "хххххх", "хххххххх",
        5,,,Истина);
        
        strXML =
    "<?xml version=""1.0"" encoding=""utf-8""?>
    |<soap:Envelope xmlns:soap=""http://schemas.xmlsoap.org/soap/envelope/"";;
    | xmlns:m=""http://schemas.microsoft.com/exchange/services/2006/messages"";;
    | xmlns:t=""http://schemas.microsoft.com/exchange/services/2006/types"">;;
    |<soap:Body>
    |    <m:FindItem Traversal=""Shallow"">
    |        <m:ItemShape>
    |            <t:BaseShape>Default</t:BaseShape>
    //|            <t:BaseShape>IdOnly</t:BaseShape>
    |            <t:AdditionalProperties>
    |                  <t:FieldURI FieldURI=""item:DateTimeSent""/>
    |            </t:AdditionalProperties>            
    |        </m:ItemShape>                              
    |        <m:IndexedPageItemView MaxEntriesReturned=""10"" BasePoint=""Beginning"" Offset=""0""/>
    |        <m:Restriction>                              
    |            <t:IsEqualTo>                            
    |                <t:FieldURI FieldURI=""message:IsRead""/>
    |                    <t:FieldURIOrConstant>                
    |                         <t:Constant Value=""false""/>    
    |                    </t:FieldURIOrConstant>              
    |            </t:IsEqualTo>                              
    |        </m:Restriction>                                  
    |        <m:SortOrder>                                    
    |            <t:FieldOrder Order = ""Ascending"">    
    //|            <t:FieldOrder Order = ""Descending"">
    |                <t:FieldURI FieldURI=""item:DateTimeSent""/>    
    |            </t:FieldOrder>                
    |        </m:SortOrder>              
    |";
    
    strSearch = "";

    Если strSearch <> "" Тогда
        
        strXML = strXML +
        "<m:Restriction>" +
        "    <t:Contains ContainmentComparison=""IgnoreCase"" ContainmentMode=""Substring"">" +
        "        <t:FieldURI FieldURI=""item:Subject"" />" +
        "        <t:Constant Value=""" + strSearch + """/>" +
        "    </t:Contains>" +
        "</m:Restriction>";
        
    КонецЕсли;

    strXML = strXML +
        "<m:ParentFolderIds>" +
        "<t:DistinguishedFolderId Id=""inbox"">";
    
    strEmail = "";    

    Если strEmail <> "" Тогда
        strXML = strXML + "<t:Mailbox><t:EmailAddress>" + strEmail + "</t:EmailAddress></t:Mailbox>";
    КонецЕсли;

        strXML = strXML +
            "</t:DistinguishedFolderId>" +
            "</m:ParentFolderIds>" +
            "</m:FindItem>" +
            "</soap:Body>" +
            "</soap:Envelope>";
    oXMLHTTP = СоздатьXMLHTTP();
    //oXMLHTTP.setRequestHeader("Depth", "0");
    //oXMLHTTP.setRequestHeader("SOAPAction", "http://webservices.belavia.by/GetAirportsList";;);
    oXMLHTTP.send(strXML);

    
    
    //WSОпределение.ФабрикаXDTO.Пакеты[0]=    
   // ПростанствоИмен="https://ххххххх/ews/Services.wsdl";;    
   // Прокси = Новый WSПрокси(WSОпределение, ПростанствоИмен, "PartnerSubscriptionApiServiceImplService",
   //     "PartnerSubscriptionApiServiceImplPort");  
   //Прокси.Пользователь="ххххххх";
   //Прокси.Пароль="хххх";
КонецПроцедуры
 
 
   PR
 
1 - 19.09.18 - 16:24
42
   Alexoidic
 
2 - 19.09.18 - 16:31
oXMLHTTP = Новый COMОбъект("MSXML2.XMLHTTP");
    oXMLHTTP.open("POST", стрURL, 0, "******", "**");
    oXMLHTTP.setRequestHeader("Content-Type", "text/xml"); 
    Возврат oXMLHTTP;

В точке возврата пишет, что метод не наиден и произошла исключительная ситуция (msxml3.dll). НЕопознаная ошибка.
   PR
 
3 - 19.09.18 - 16:34
Так так, продолжай
   Garikk
 
4 - 19.09.18 - 17:04
(0) боюсь предположить что вы будете делать если вам http заблокируют
   Alexoidic
 
5 - 19.09.18 - 17:09
Не бойтесь, не заблокируют, что ж делать, если политика базопастности считает эти протоколы небезопастными, да оно и понятно их легко проСНИФФЕРИТЬ
   Garikk
 
6 - 19.09.18 - 17:12
(5) уже давно изобрели smtp over ssl и pop3s
==
а ещё есть imap (который тоже умеет over ssl)
   Garikk
 
7 - 19.09.18 - 17:15
и если у вас такая жестокая политика безопасности, то как интересно она собралась "снифферить" в корпоративной сети которая построена со всеми этими политиками? это же тупо нереально при правильно настроенном сетевом оборудовании

P.S. исключение может быть только если безопасность вам вменена в обязанность следованием какомуто стандарту для сертификации, но врятли это ваша тема
   Alexoidic
 
8 - 19.09.18 - 21:21
В общем я не силен в сетевой безопасности, просто на прошлом месте работы в университете я спокойно такие штуки с попами)) и смтп, а тут наверняка все нормально с этим. А так хотелось бы что нибудь по теме услышать))) &#55357;&#56860;
   Новиков
 
9 - 19.09.18 - 23:16
   Alexoidic
 
10 - 20.09.18 - 13:59
И снова здравствуйте!!!
Я сегодня пошел другим путем:

    ЗащищенноеСоединение = Новый ЗащищенноеСоединениеOpenSSL();

    Определение = Новый WSОпределения("https://h011-msg-01.mrg011.ru/ews/Services.wsdl";, "a1214", "000",
        5,,ЗащищенноеСоединение,Истина);
    // читаем XML
    НаборСхемXML = Определение.ФабрикаXDTO.ЭкспортСхемыXML(
        "http://schemas.microsoft.com/exchange/services/2006/messages";);
    
    Пакет=Определение.ФабрикаXDTO.Пакеты.Получить(1);
    Метод=Пакет.КорневыеСвойства
 
 Рекламное место пустует
   Garikk
 
11 - 20.09.18 - 14:08
(8) я по теме написал
POP3, SMTP и IMAP в вариантах с SSL

точно такимже способом коннектится оутлук

а то что вы делаете, это "в гамаке стоя"
   Garikk
 
12 - 20.09.18 - 14:09
(8) снифаются пакеты элементарно, но в нормальных организациях (там где безопасность-это безопасность) стоят свичи которые не позволяют ARP-спуфинг делать с клиентских компов, и вы при всем желании не перехватите чужой пакет

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует