Имя: Пароль:
1C
1С v8
Отсутствие вложений при приеме почты через ИнтернетПочта
0 alexinnnn
 
11.03.12
23:28
Очень странно, не могу понять в чем дело:

У нас дописанная конфа на основе УТ 10.2. Отправляем/получаем всю почту через встроенный почтовик - соответственно ИнтернетПочта. Вот вкратце текст:

МассивПисем = ИнтернетПочта.Выбрать(Истина);
Для Каждого ИнтернетПисьмо Из МассивПисем Цикл
  // ИнтернетПисьмо.Вложения.Количество = 0
КонецЕсли;

Все чаще и чаще начали сталкиваться с такой проблемой: приходят письма без вложения. Т.е. вложение должно быть, но почему-то "ИнтернетПисьмо.Вложения.Количество = 0". Происходит это редко и только с определенными письмами (вложения видимо цепляют к письму в каком-то определенном почтовом клиенте или в определенном формате).

Для проверки отправитель указывал в письме копию на еще один email -  для проверки. И это письмо приходит в 1с без вложения, и на email-копию - тот же комп в bat-е - с вложением.

1с Предпр 8.2.15.301.

Голову уже сломали, очень похоже на внутреннюю кривизну ИнтернетПочта, никто не сталкивался?
1 ДенисЧ
 
11.03.12
23:29
mime-заголовки покажи..
2 alexinnnn
 
11.03.12
23:35
Вот пример заголовков того письма с вложениями, которое приходит в 1с без вложений:

Return-path: <[email protected]>
Received-SPF: pass (mx23.mail.ru: domain of qweqwe.com designates 62.153.223.216 as permitted sender) client-ip=62.153.223.216; [email protected]; helo=dcskg00smtp.dc.myqweqwe.com;
Received: from [62.153.223.216] (port=57136 helo=dcskg00smtp.dc.myqweqwe.com)
       by mx23.mail.ru with esmtp (envelope-from <[email protected]>)
       id 1S6alw-0005aU-KV
       for [email protected]; Sun, 11 Mar 2012 08:52:45 +0400
X-Mru-BL: 0:0:1122:0:0
X-Mru-PTR: off
X-Mru-NR: 1
X-Mru-OF: Linux (ethernet/modem)
X-Mru-RC: DE
Received: from dcshh01ln00.dc.myqweqwe.com (dcshh01ln00.dc.myqweqwe.com [10.152.2.110])
       by dcskg00smtp.dc.myqweqwe.com (8.14.4/8.14.4) with ESMTP id q2B4qg3a004056
       for <[email protected]>; Sun, 11 Mar 2012 05:52:43 +0100
       (envelope-from [email protected])
Received: from localhost.localdomain ([10.152.4.66])
         by dcshh01ln01.dc.myqweqwe.com (Lotus Domino Release 8.5.2FP3HF61)
         with ESMTP id 2012031105524201-79331 ;
         Sun, 11 Mar 2012 05:52:42 +0100
MIME-Version: 1.0
Date: Sun, 11 Mar 2012 04:52:42 UT
From: [email protected]
To: [email protected]
Subject: File: [email protected][email protected]
X-Mailer: MIME::Lite 2.117  (F2.74; B3.07; Q3.07)
X-MIMETrack: Itemize by SMTP Server on DCSHH01LN01/DC/qweqwe(Release 8.5.2FP3HF61 | August
2, 2011) at 03/11/2012 05:52:42 AM,
       Serialize by Router on DCSHH01LN00/DC/qweqwe(Release 8.5.2FP3HF61 | August 2, 2011) at
03/11/2012 05:52:42 AM
Message-ID: <[email protected]>
Content-Transfer-Encoding: 7bit
Content-Type: multipart/mixed; boundary="_----------=_1331441562117260"
X-Spam: Not detected
X-Mras: Ok
3 alexinnnn
 
17.03.12
01:10
неужели никто не сталкивался???
4 oleg_km
 
17.03.12
09:03
С кривизной ИнтернетПочта сталкивались, уже года три работаем с CDO
5 alexinnnn
 
27.03.12
23:58
С CDO - отправкой разобрался, а принимать через CDO можно почту???
6 oleg_km
 
28.03.12
09:31
Не знаю. Я написал POP клиента на сокетах, а уже выкачанное письмо скармливаю CDO для разбора всяких там кодировок, вложений и прочего MIME. Сечас вообще почту принимает самый простой почтовик, который умеет письма складывать в файлы. А потом 1С их схарчевывает с помощью CDO. Уже работает года четыре.
А 1С ИнтернетПочта постоянно колбасит в каждом релизе то исправят то сломают, поэтому уже давно плюнул и не смотрю на него
7 alexinnnn
 
20.04.12
19:59
Уважаемый oleg_km! Подскажи через какого сокета ты писал pop клиента? Через COMОбъект("Socket.TCP")? В итоге затеял и я все нафиг переписать сам.
Почему в итоге "почту принимает самый простой почтовик" ? Почему не собственным POP клиентом?
Еще не понял зачем скармливать выкачаные письма в CDO. Их же выкачиваешь, аттачи отдельно на диск (и письмо тоже при желании), и после просто показываешь как html или обычный текст юзеру.    CDO нафиг же не нужен. А ну еще картинки, которые внутри html писем, пропарсить надо, но это мелочи.
8 oleg_km
 
20.04.12
22:34
Через WinSock ActiveX и свою dll писал. Но если разберешься с Socket.TCP, пиши на нем. Там в POP протоколе всего-то пять команд. Получаешь сырое письмо, как в (2), А потом всасываешь его в CDO.Message, а он все сам перекодирует, свякие там base64, MIME. Вложения разложит по коллекциям, картинки всякие. Тебе только разложить по реквизитам и ТЧ какого либо документа, например ЭлектронноеПисьмоВходящее
9 Dimasik2007
 
20.04.12
23:13
ИнетрнетПочта то еще редкостное гуано. У нас работало-работало год, потом бац! и начало коряжить вложения - то не открывается, то в рисунке половины картинки нет. Короч, забили на него.
10 alexinnnn
 
20.04.12
23:42
спасибо за оперативный ответ, pop через Socket.TCP уже почти получился, в CDO.Message долго не понимал как всасывать письмо, вроде через GetStream()...(?)
11 alexinnnn
 
20.04.12
23:52
(9) И... на что ее променяли?
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан