Задача:
написать робота для обработки входящих писем.
Что сделал:
написал на VBA скрипт в outlook'е
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
Private Sub Application_NewMailEx(ByVal EntryIDCollection As String)
Dim arr() As String
Dim i As Integer
Dim ns As Outlook.NameSpace
Dim itm As MailItem
Dim m As Outlook.MailItem
Dim parsedRequest
On Error Resume Next
Set ns = Application.Session
arr = Split(EntryIDCollection, ",")
For i = 0 To UBound(arr)
Set itm = ns.GetItemFromID(arr(i))
If itm.Class = olMail Then
Set m = itm
If UCase(Left(m.subject, 3)) = "API" Then
If (m.DownloadState = olFullItem) Then
Response = parseRequest(m.body)
Call SendResponse(m.Sender.Address, "RE: " + m.subject, Response)
m.MarkAsTask (olMarkComplete)
m.Save
End If
End If
End If
Next
Set ns = Nothing
Set itm = Nothing
Set m = Nothing
End Sub
В письмах приходит xml в виде olFormatPlain.
С небольшими письмами полный порядок.
Но! xml в письмах примерно от 300 байт перестаёт распознаваться как xml.
Отладка поставила меня в тупик. см. скриншот.
Даже не знаю как это объяснить... Если обращаюсь к свойству body объекта, то получаю обрезанный текст письма, если смотреть в отладчике сам объект и развернуть его свойства в дереве просмотра, то вижу полный текст письма. причём длина обрезанного остатка зависит от текста. в данном случае 251 символ. с другим текстом было 391 символ.
Outlook 2013
кто-нть знает как получить полный текст письма?
.
------------------------------------------------------------