Webdav, копирование сообщения

  • Автор темы Dmitry Stremkouski
  • Дата начала
Статус
Закрыто для дальнейших ответов.
D

Dmitry Stremkouski

#1
Здравствуйте, уважаемые специалисты.
Имею проблему с данным модулем.

Дано:
Exchange Server 1, Exchange Server 2, MSXML4, VBScript6
Доступ к сообщениям получаю по WebDAV.

Этот код копирует источник при помощи потока ADO и, затем, полученные данные отправляет вторым запросом на назначение. Использую бинарный поток, без разбора.

Проблема возникает при разборе заголовков сообщения после перемещения.
В местах полей От: и Кому: русские буквы заменяются на вопросительные знаки.

Не могли бы вы мне помочь разобраться, почему так происходит и с чем это может быть связано.

Буду рад любым подсказкам.
Спасибо.

Код модуля:

Код:
' **************************************************************************** '
' ---------------------- CopyMsg --------------------------------------------- '
' **************************************************************************** '
Public Function CopyMsg (FromPath, ToPath)

Dim CONN1, CONN2, ASTREAM, MessageIO

Set CONN1 = CreateObject("Msxml2.XMLHTTP")

' Проверка на успешное создание обьекта.
If Err.Number <> 0 Then
WScript.Echo "Error Creating XML object"	
WScript.Echo Err.Number & ": " & Err.Description
Else

Set CONN2 = CreateObject("Msxml2.XMLHTTP")

' Проверка на успешное соединение.
If Err.Number <> 0 Then
WScript.Echo "Error Creating XML object"
WScript.Echo Err.Number & ": " & Err.Description
Else

' Открытие двух соединений.
CONN1.Open "GET", FromPath, FALSE, PMdomain & "\" & PMlogin, PMpassw
CONN2.Open "PUT", ToPath, FALSE, PMdomain & "\" & PMlogin, PMpassw

CONN1.SetRequestHeader "Translate","f"

' Честно говоря, перепробовал множество значений, но это не повлияло на ход событий.
CONN1.SetRequestHeader "Charset", "x-ansi"

CONN1.Send

CONN2.SetRequestHeader "Destination", ToPath
CONN2.SetRequestHeader "Charset", "x-ansi"
CONN2.SetRequestHeader "Translate","f"

Set ASTREAM = CreateObject("ADODB.Stream")

If Err.Number <> 0 Then
WScript.Echo "Error Creating ADODB Stream"
WScript.Echo Err.Number & ": " & Err.Description
Else

ASTREAM.Open
If Err.Number <> 0 Then
WScript.Echo "Error Opening ADODB Stream"
WScript.Echo Err.Number & ": " & Err.Description
Else
MessageIO = CONN1.ResponseBody
ASTREAM.Type = 1 ' Бинарный поток.
ASTREAM.Write MessageIO
ASTREAM.Position = 0
ASTREAM.Type = 1 ' Setting to BinaryType Stream Data
CONN2.Send ASTREAM
End If

End If

Set ASTREAM = Nothing

End If

Set CONN2 = Nothing

End If

Set CONN1 = Nothing

End Function
' ----------------- EOF: CopyMsg --------------------------------------------- '
 
Статус
Закрыто для дальнейших ответов.