Exchange Server 2000 WorkFlow

Все темы, касающиеся администрирования SQL Server, Exchange Server, BizTalk Server, Commerce Server и т.п.

Модератор: Sebas

SAS
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 101
Зарегистрирован: 21.06.2005 (Вт) 0:30
Откуда: Петропавловск-Камчатский

Exchange Server 2000 WorkFlow

Сообщение SAS » 26.02.2006 (Вс) 7:46

Я использую Exchange Workflow Project Package SP1 для обработки событий, происходящих с документами в папках Exchange Server 2000 (например - получение нового сообщения, редактирование сообщения опред. пользователем, удаление и пр.).
Язык, который используется для обработки событий - VBScript. C помощью различных методов я программно могу прочитать заголовок или текст сообщения, адрес отправителя, список получателей, создать и отправить новое сообщение от имени администратора Exchange Server, добавить сообщение в базу данных sql сервера, но не могу понять:
1. возможно ли удалить сообщение, вызвавшее срабатывание триггера;
2. Как получить вложенные в сообщение файлы;
3. Возможно ли при получении сообщения перенаправить его по другому адресу (программно)

Sebas
Неуловимый Джо
Неуловимый Джо
Аватара пользователя
 
Сообщения: 3626
Зарегистрирован: 12.02.2002 (Вт) 17:25
Откуда: столько наглости такие вопросы задавать

Сообщение Sebas » 26.02.2006 (Вс) 9:42

Если сообщение есть CDO.Message
1. Нужно установить соответсвующий транспортный хидер
2. Соответственно Msg.Attachments
3. Msg.To="asd@asd.asd"
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?

sebas<-@->mail.ru

SAS
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 101
Зарегистрирован: 21.06.2005 (Вт) 0:30
Откуда: Петропавловск-Камчатский

Сообщение SAS » 27.02.2006 (Пн) 7:13

Пытался использовать CDO.Message, однако при выполнении следующего кода на адрес "to@myserver.ru" приходит сообщение об ошибке 429, ошибка происходит на строке
Код: Выделить всё
Set iMsg = createobject ("CDO.Message")
, больше негде:
Код: Выделить всё
Sub Create1_OnCreate
on error resume next
Dim iMsg
err.Clear
Set iMsg = createobject ("CDO.Message")
Set WFMsg = WorkflowSession.GetNewWorkflowMessage
With WFMsg
      .From = "from@myserver.ru"
      .To = "to@myserver.ru"
      .Subject =  "error number"
      .TextBody = err.number
      .SendWorkflowMessage cdowfStrict
End With
End Sub

вероятно надо как то установить настроить CDO, и что значит транспортный хидер?

Еще такая проблемка: пытался написать сообщение на русском языке:
Код: Выделить всё
Set WFMsg = WorkflowSession.GetNewWorkflowMessage
With WFMsg
      .From = "from@myserver.ru"
      .To = "to@myserver.ru"
      .Subject =  "error number"
      .TextBody = "сообщение на русском языке"
      .SendWorkflowMessage cdowfStrict
End With
на адрес "to@myserver.ru" иногда приходит сообщение на русском языке, а чаще - вопросительные знаки вместо текста.
Как исправить?

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 27.02.2006 (Пн) 8:31

Поставь MS Outlook, CDO в него входит.
Lasciate ogni speranza, voi ch'entrate.

Sebas
Неуловимый Джо
Неуловимый Джо
Аватара пользователя
 
Сообщения: 3626
Зарегистрирован: 12.02.2002 (Вт) 17:25
Откуда: столько наглости такие вопросы задавать

Сообщение Sebas » 27.02.2006 (Пн) 9:08

Код: Выделить всё
        Public Sub Block(ByVal Msg As CDO.Message, ByRef EventStatus As CDO.CdoEventStatus)
        Dim objFields As ADODB.Fields

        objFields = Msg.EnvelopeFields
        objFields.Item("http://schemas.microsoft.com/cdo/SMTPenvelope/messagestatus").Value = 3
        objFields.Update()

        '       
        'cdoStatSuccess 0 Success.
        'cdoStatAbortDelivery 2 Do not deliver the message.
        'cdoStatBadMail 3 Do not deliver the message and place it in the bad mail location.

        EventStatus = CDO.CdoEventStatus.cdoSkipRemainingSinks

    End Sub
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?

sebas<-@->mail.ru

SAS
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 101
Зарегистрирован: 21.06.2005 (Вт) 0:30
Откуда: Петропавловск-Камчатский

Сообщение SAS » 27.02.2006 (Пн) 23:21

alibek писал(а):Поставь MS Outlook, CDO в него входит.

Outlook это ведь клиент, а мне нужно, чтобы код выполнялся на стороне сервера Exchange, при действии над сообщением в определенной папке сервера - например при получении письма, при редактировании, при удалении, при истечении определенного срока и пр.
Sebas писал(а):

Это ведь, я понимаю код на VBA, а мне подходит только VBS, он только выполняется на сервере
Попробую на виртуальной машине у себя поставить Exchange Server полностью, может, что и получится с объектами. На оригинальном сервере боязно что то доустанавливать

SAS
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 101
Зарегистрирован: 21.06.2005 (Вт) 0:30
Откуда: Петропавловск-Камчатский

Сообщение SAS » 28.02.2006 (Вт) 2:49

Кажется с удалением объекта, вызвавшего срабатывание триггера, проблема решена нужно использовать метод
Код: Выделить всё
WorkflowSession.DeleteWorkflowItem


Вернуться в Enterprise Servers

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2

    TopList