Настройка клиента GroupWise 5.5

Обсуждение технических вопросов по продуктам Novell

Настройка клиента GroupWise 5.5

Сообщение Алекс » 24 сен 2004, 14:03

Коллеги,

Подскажите, каким образом настроить клиента GroupWise 5.5, что бы он при получении письма с заданной строчкой в поле "Тема" автоматически сохранял вложенные в данное письмо файлы в указанную директорию.
Алекс
 
Сообщения: 2
Зарегистрирован: 24 сен 2004, 14:00

Ответ

Сообщение skoltogyan » 25 сен 2004, 13:44

Штатно - Никак. GW клиент - сресдвто ДОСТУПА. к Данным
Данные ХРАНИТСЯ НА СЕРВЕРЕ.
Правила - отрабатывают на сервере.

Если доукпить и поставить Formativ Applet, то частично - да.
Но автоматом, что-бы САМ СЕРВЕР при получении письма с темой:
ОГО? вытащил прикрепление и положил в
data:\home\user\files
Такого нет
skoltogyan
 
Сообщения: 1942
Зарегистрирован: 12 июл 2002, 19:39
Откуда: Украина, Донецк

Re: Настройка клиента GroupWise 5.5

Сообщение Андрей Троценко » 25 сен 2004, 15:22

Алекс писал(а):Коллеги,

Подскажите, каким образом настроить клиента GroupWise 5.5, что бы он при получении письма с заданной строчкой в поле "Тема" автоматически сохранял вложенные в данное письмо файлы в указанную директорию.


Можно самому на VisualBasice (даже в Word-е !) склепать програмку в десяток-другой строчек, которая будет это делать - см. GW SDK (http://developer.novell.com/ndk/).
Другой вариант - использовать GW API GateWay, и выгружать файлы из писем, поступающих на определенный адрес (который посадить на GW API GateWay).
Аватара пользователя
Андрей Троценко
 
Сообщения: 529
Зарегистрирован: 31 июл 2002, 13:54
Откуда: Киев, Украина

Права не защищены, исходники - народу

Сообщение Андрей Троценко » 26 сен 2004, 02:59

Андрей Троценко писал(а):...Можно самому на VisualBasice (даже в Word-е !) склепать програмку...


Нашел свои писаки тысячелетней давности, которые это и делают: сохраняют прикрепления из сообщений в указанной папке, сообщения удаляют. Код работает как в MS Visual Basic-е (в 5 -точно), так и в MS Visual Basice, которым MS Office автоматизирован.
А сейчас я это же делаю GW API GateWay-ем, отдельными аккаунтами и маленькой самопиской на Java.

Код: Выделить всё
Option Explicit

Dim GWAccount As Object

Private Sub DisplayStatus(Optional status As String = "")
  StatusBar = status
End Sub

Public Function GetFolderIDByPath(folder As String)
  Dim ParentFolder As Object, slashPos As Integer, FolderToSearch As String
  Set ParentFolder = GWAccount.RootFolder
  Do Until (Len(folder) = 0)
    slashPos = InStr(folder, "/")
    If (slashPos = 0) Then
      FolderToSearch = folder
      folder = ""
    Else
      FolderToSearch = Left(folder, slashPos - 1)
      folder = Mid(folder, slashPos + 1)
    End If
    Dim ErrNumber As Integer
    On Error Resume Next
    Set ParentFolder = ParentFolder.Folders.ItemByName(FolderToSearch)
    ErrNumber = Err.Number
    If (ErrNumber <> 0) Then
      Err.Raise (ErrNumber)
    End If
  Loop
  GetFolderIDByPath = ParentFolder.FolderID
  Set ParentFolder = Nothing
End Function

Public Sub SaveAttachmentsFromMessages(GWFolderNameToCheck As String, DirForSavedAttachments As String)
  Dim GWMessages As Object, GWMessage As Object, GWAttachments As Object, GWAttachment As Object, ErrorSavingAttachment As Boolean
  DisplayStatus ("Инициализация GroupWise...")
  Set GWAccount = CreateObject("NovellGroupWareSession").Login()
  DisplayStatus ("Проверка сообщений...")
  Set GWMessages = GWAccount.AllFolders.Item(GetFolderIDByPath(GWFolderNameToCheck)).Messages
  For Each GWMessage In GWMessages
    DisplayStatus ("Сообщение '" + GWMessage.Subject.PlainText + "'")
    ErrorSavingAttachment = False
    Set GWAttachments = GWMessage.Attachments
    For Each GWAttachment In GWAttachments
      Dim AttachmentName As String
      AttachmentName = GWAttachment.FileName
    DisplayStatus ("Сообщение '" + GWMessage.Subject.PlainText + "', Файл '" + AttachmentName + "'...")
'      If GWAttachment.ObjType = egwFile And
      If GWAttachment.ObjType = 1 And _
          StrComp(AttachmentName, "MIME.822", vbTextCompare) * _
          StrComp(AttachmentName, "PART.001", vbTextCompare) * _
          StrComp(AttachmentName, "PART.002", vbTextCompare) <> 0 Then
        Dim ErrNumber As Integer
        On Error Resume Next
        GWAttachment.Save (DirForSavedAttachments + AttachmentName)
        ErrNumber = Err.Number
        On Error GoTo 0
        If (ErrNumber <> 0) Then
          ErrorSavingAttachment = True
          Call MsgBox(Error(Err.Number), vbOKOnly, "Ошибка")
        End If
      End If
    Next
    If (ErrorSavingAttachment = False) Then
      GWMessage.Delete
    End If
  Next
  DisplayStatus
End Sub

Public Sub Main()
  Call SaveAttachmentsFromMessages("Картотека/Тест2", "c:\temp\gwsavetest")
End Sub
Аватара пользователя
Андрей Троценко
 
Сообщения: 529
Зарегистрирован: 31 июл 2002, 13:54
Откуда: Киев, Украина

Сообщение Алекс » 27 сен 2004, 17:03

Спасибо всем, кто откликнулся - буду пробовать :)
Алекс
 
Сообщения: 2
Зарегистрирован: 24 сен 2004, 14:00

Re: Права не защищены, исходники - народу

Сообщение Dimerson » 27 сен 2004, 20:28

Андрей Троценко писал(а):
Андрей Троценко писал(а):...Можно самому на VisualBasice (даже в Word-е !) склепать програмку...


.... skipped ....

Public Sub Main()
Call SaveAttachmentsFromMessages("Картотека/Тест2", "c:\temp\gwsavetest")
End Sub[/code]


Завидую тем кто это на VB пишет [или даже на дельфи] - на C там текста тупо раза в 3 поболее и наредкость зубодробительного получалось :-[ ] Хотя года 3 назад написанные отправляльщики / и распаковщики аттачей были сделаны и до сих пор воркают .
Под ними GW52 сменился на GW60 и даже пересобирать не пришлось.
[так и использую Proxy Users вместо мультилогина (не было этого метода в GW52 а застаывить COM обьект делать перелогин ну никак не получалось)].
Аватара пользователя
Dimerson
 
Сообщения: 2798
Зарегистрирован: 15 сен 2002, 14:39
Откуда: Регион 70

Re: Права не защищены, исходники - народу

Сообщение Андрей Троценко » 27 сен 2004, 20:59

Dimerson писал(а):...на C там текста тупо раза в 3 поболее и наредкость зубодробительного получалось...


В добрых 5 раз ! Я намучился когда C3PO отлаживал. Хорошо, что потом догадался такую (по теме) ерунду на басице клепать - как правило это разовые или отладочные операции...

Кстати, автору темы: можно попробовать это портировать на WScript - не нужно будет всей VB-обвязки.
Аватара пользователя
Андрей Троценко
 
Сообщения: 529
Зарегистрирован: 31 июл 2002, 13:54
Откуда: Киев, Украина

Re: Права не защищены, исходники - народу

Сообщение SlyFox » 30 сен 2004, 06:10

Андрей Троценко писал(а):Нашел свои писаки тысячелетней давности, которые это и делают: сохраняют прикрепления из сообщений в указанной папке, сообщения удаляют. Код работает как в MS Visual Basic-е (в 5 -точно), так и в MS Visual Basice, которым MS Office автоматизирован.
А сейчас я это же делаю GW API GateWay-ем, отдельными аккаунтами и маленькой самопиской на Java.


Эх, где ж Вы раньше то были с таким прекрасным кодом... Круто! А нет ли у Вас случайно кода для отправки файликов по ГВ? Ну типа из c:\temp взять файл temp.fil и отправить сообщение с прикрепленным файлом для temp@temp.tm с темой temp??? ПодЕлитесь кодом? ;)
Аватара пользователя
SlyFox
 
Сообщения: 170
Зарегистрирован: 22 сен 2003, 05:06
Откуда: Russia, Yakutia

Сообщение SlyFox » 30 сен 2004, 11:02

Идиотская привычка, задавать вопросы и самому на них отвечать. Что-то типа этого:
Код: Выделить всё
Public Sub SendGWMessage(GWRecipient As String, GWAttachmentName As String)
  Dim GWMessages As Object, GWMessage As Object, GWAttachments As Object, GWAttachment As Object, ErrorSavingAttachment As Boolean

  Set GWAccount = CreateObject("NovellGroupWareSession").Login()
  Set GWMessages = GWAccount.AllFolders.Item(GetFolderIDByPath("Документы")).Messages
  Set GWMessage = GWMessages.Add()
GWMessage.Subject = "hello"
GWMessage.Recipients.Add (GWRecipient)
GWMessage.Attachments.Add (GWAttachmentName)
GWMessage.Send
End Sub
Аватара пользователя
SlyFox
 
Сообщения: 170
Зарегистрирован: 22 сен 2003, 05:06
Откуда: Russia, Yakutia

Сообщение Dimerson » 30 сен 2004, 13:07

SlyFox писал(а):Идиотская привычка, задавать вопросы и самому на них отвечать. Что-то типа этого:
Код: Выделить всё
Public Sub SendGWMessage(GWRecipient As String, GWAttachmentName As String)
  Dim GWMessages As Object, GWMessage As Object, GWAttachments As Object, GWAttachment As Object, ErrorSavingAttachment As Boolean

  Set GWAccount = CreateObject("NovellGroupWareSession").Login()
  Set GWMessages = GWAccount.AllFolders.Item(GetFolderIDByPath("Документы")).Messages
  Set GWMessage = GWMessages.Add()
GWMessage.Subject = "hello"
GWMessage.Recipients.Add (GWRecipient)
GWMessage.Attachments.Add (GWAttachmentName)
GWMessage.Send
End Sub


Перед сендом надо вызвать метод Resolve.

на C это типа

status = pIGWRecipient->Resolve(vTargetType);
if(SUCCEEDED(status))
status = pIGWMessage->Send&pDIGWRetMessage);
Аватара пользователя
Dimerson
 
Сообщения: 2798
Зарегистрирован: 15 сен 2002, 14:39
Откуда: Регион 70

Об отправке

Сообщение Андрей Троценко » 30 сен 2004, 13:14

SlyFox писал(а):...А нет ли у Вас случайно кода для отправки файликов по ГВ? Ну типа из c:\temp взять файл temp.fil и отправить сообщение с прикрепленным файлом для temp@temp.tm с темой temp??? ПодЕлитесь кодом? ;)


На кулсолюшнах есть утиль - gwsend.exe, все параметры передаются командной строкой, зависим от GW-клиента на станции. Более автономный метод - использовать GW API GateWay, а управляющие файлы для него можно генерировать даже из батника :) Ну а если нужно все же из басица, см. что написал Dimerson. Вообще на http://developer.novell.com/ самплы есть.
Аватара пользователя
Андрей Троценко
 
Сообщения: 529
Зарегистрирован: 31 июл 2002, 13:54
Откуда: Киев, Украина


Вернуться в Novell

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

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

cron