Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[Python]Omzetten connectie Lotus Notes naar Outlook

Pagina: 1
Acties:

  • Kwakkel
  • Registratie: Mei 2007
  • Laatst online: 12:02
Hey iedereen,

Hier op het werk gebruiken wij een tooltje dat geschreven is door een ex-collega in Python. Dit programmaatje maakt een link met de Lotus Notes server, opent een bepaalde mailbox, doorloopt alle mails in de inbox en bewaart de attachements (voor zover deze niet al tijdens een eerdere run verwerkt zijn).

Nu zijn wij sinds kort overgestapt op Outlook en, je raadt het al, dat tooltje moet aangepast worden.
Probleem: wij zijn geen IT bedrijf (en zelf heb ik na mijn studies ook niet veel meer met ECHT IT werk te maken gehad) en niemand van ons kent Python. Zelf kan ik de grote (en een deel kleine) lijnen van het programma wel lezen. Maar het effectief aanpassen van de link naar de LN database is toch weer wat anders.

Ik zou het dan ook appreciëren mocht iemand hier even naar willen kijken, en mij een trap in de juiste richting willen geven.

Het gaat, volgens mij, over volgende stukjes code:
Bovenaan:
code:
1
    from win32com.client import Dispatch


Meer naar onder:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
    Session=Dispatch('Lotus.NotesSession')
    Session.Initialize("XXXXXX")#PASSWORD
    DB=Session.GetDatabase('BEDBSBRU02/BE/AON','mail\general\discountrate.nsf')

    for view in DB.Views:
        print view.Name

    Folder=DB.GetView('$Inbox')#ENTER INSIDE THE FOLDER DiscountRates

    Mails=Folder.GetFirstDocument()
    while Mails:#CYCLE THROUGH ALL THE MAILS IN THE FOLDER
        for wichItem in xrange(len(Mails.Items)):#CYCLE THROUGH THE CONTENTS OF EACH MAIL
            item=Mails.Items[wichItem]
        
            if item.Name=='$FILE':#CHECK THE ATTACHEMENT
                fileName=item.Values[0]
                DestPath=Path+os.sep+fileName
            
                ...


De 'import' is volgens mij wel ok.
Als ik 'google' mag vertrouwen, dan zou ik vervolgens "Session=Dispatch('Lotus.NotesSession')" moeten vervangen door "Session=Dispatch('Mapi.Session')".
Maar dan komt het 'tricky part' eraan: waarschijnlijk moeten 'Session.Initialize("XXXXXX")', 'DB=Session.GetDatabase('.....')' en 'Folder=DB.GetView('$Inbox')' aangepast worden naar een Outlook formaat (nog los van het feit dat ik het pad naar de Outlook directory op een netwerkschijf ook te pakken moet krijgen), maar hoe?

Alvast hartelijk bedankt voor enige tips ter zake!

  • 0fbe
  • Registratie: Januari 2004
  • Laatst online: 06:28
Allereerst, je gaat niet simpelweg met een paar regels aanpassen dit werkend krijgen. De communicatie met Outlook is erg anders.

Een paar pointers:
Stackoverflow: Het lezen van Outlook items
MSDN: In Visual Basic hoe je een map met e-mails kunt selecteren
MSDN: Hoe je attachments kunt opslaan

  • Kwakkel
  • Registratie: Mei 2007
  • Laatst online: 12:02
Hey simplendi,

Bedankt voor de links. Ik zal ze zeker bekijken.
Wel vraag ik me af of de link m.b.t. VB erg nuttig zal zijn. Is er een specifieke reden waarom je die hebt doorgegeven?

  • 0fbe
  • Registratie: Januari 2004
  • Laatst online: 06:28
Kwakkel schreef op dinsdag 06 november 2012 @ 09:35:
Hey simplendi,

Bedankt voor de links. Ik zal ze zeker bekijken.
Wel vraag ik me af of de link m.b.t. VB erg nuttig zal zijn. Is er een specifieke reden waarom je die hebt doorgegeven?
Die MSDN pagina's beschrijven precies de objecten en methoden die Outlook aanbiedt. Of je die nu in Python of Visual Basic gebruikt maakt voor de definities van de objecten niet zo veel uit.

  • Kwakkel
  • Registratie: Mei 2007
  • Laatst online: 12:02
Hey simplendi,

Da's waar natuurlijk!
Bedankt voor de tips!