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

Тема в разделе "Другие", создана пользователем Dmitry Stremkouski, 28 фев 2007.

Статус темы:
Закрыта.
  1. Dmitry Stremkouski

    Dmitry Stremkouski Гость

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

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

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

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

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

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

    Код модуля:

    Код (Text):
    ' **************************************************************************** '
    ' ---------------------- 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 --------------------------------------------- '
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей