Lotus notes script example

This is an example of how to access lotus email with python, please comment

from win32com.client import Dispatch
import smtplib

session = Dispatch(‘Lotus.Notessession’)
session.Initialize('xxxxx')
db = session.getDatabase("",'xxxxx\xxxxxx.nsf')
print db.Title

view = db.GetView('$Inbox')
print view.name
doc = view.GetFirstDocument
record = doc.GetItemValue('Body')
print doc.GetItemValue('Subject')
for line in record :
    print line
print '##########################################################'
loop=0
while loop<4:
    doc = view.GetNextDocument(doc)
    record = doc.GetItemValue('Body')
    print doc.GetItemValue('Subject')
    for line in record :
        print line
    print '##########################################################'
    loop=loop+1

iteration wrappers

Some simple iteration wrappers lotus notes:

from win32com.client import Dispatch
session = Dispatch('Lotus.NotesSession')

def iterateDocuments(view):
   """ wrapper for iterating documents from a view, fe:
       for doc in iterateDocuments(inbox): print doc.GetItemValue('Subject') """
   doc = view.GetFirstDocument()
   while doc:
      yield doc
      doc = view.GetNextDocument(doc)

def iterateDatabases(server, filetype=1247):
   """ wrapper for iterating databases from a server, fe:
       for db in iterateDatabases('server'): print db.Title """
   db = server.GetFirstDatabase(filetype)
   while db:
      yield db
      db = server.GetNextDatabase()

def iterateEntries(ACL):
   """ wrapper for iterating ACL entries for a database, fe:
   for entry in iterateEntries(db.ACL):
         if entry.IsPerson: print entry.Name"""
   entry = ACL.GetFirstEntry()
   while entry:
      yield entry
      entry = ACL.GetNextEntry(entry)

Manipulate Data in Lotus Notes

I didn`t test this example. But it shows how to manipulate data in Lotus notes with Python/Pywin32:

import win32com.client
import win32com.client
sess=win32com.client.Dispatch("Lotus.NotesSession")

db=sess.GetDatabase("","log.nsf")
print db.Title