Newbie question on kopano python



  • I try to access the email address attribute in contact folder

      1 import kopano
      2 
      3 from MAPI.Tags import *
      4 
      5 server = kopano.Server()
      6 
      7 store = server.user('linuxadmins').store
      8 
      9 contacts = store.contacts
     10 
     11 print(contacts.count)
     12 
     13 for item in contacts:
     14     print(item)
     15     for prop in item:
     16         print(prop, prop.value)
    

    It seems there are not MAPI Tags for the E-Mail Addresses:

    Item(Binary-People)
    (Property(PR_MESSAGE_CLASS_W), u'IPM.Contact')
    (Property(PR_SENSITIVITY), 0L)
    (Property(PR_SUBJECT_W), u'Binary-People')
    (Property(PR_SUBJECT_PREFIX_W), u'')
    (Property(PR_DISPLAY_BCC_W), u'')
    (Property(PR_DISPLAY_CC_W), u'')
    (Property(PR_DISPLAY_TO_W), u'')
    (Property(PR_MESSAGE_FLAGS), 1L)
    (Property(PR_MESSAGE_SIZE), 2347L)
    (Property(PR_PARENT_ENTRYID), '\x00\x00\x00\x00\x1c\xe5:q&8B\x02\x89\xb2V\xe4\xb2\xae\x88\xdd\x01\x00\x00\x00\x03\x00\x00\x00\xbae{\x12\xee\xa8J\xd2\xa61\xe5\x0b;\x99\x80\x98\x00\x00\x00\x00')
    (Property(PR_MESSAGE_RECIPIENTS), None)
    ...
    (Property(address:32896), u'Binary-People (matt@binary-people.org)')
    (Property(address:32898), u'SMTP')
    (Property(address:32899), u'matt@binary-people.org')
    (Property(address:32900), u'matt@binary-people.org')
    ...
    

    How can I access the email address attributes and how can i loop over all email addresses of a contact??

    BTW: I am absolutely new to python. Is there a collection of examples available somewhere?

    greetings
    Mathias



  • i use this:

          prop_MAIL1=str(item.get_value('address:32899'))
           if prop_MAIL1 == "None":
               prop_MAIL1=""
           prop_MAIL2=str(item.get_value('address:32915'))
           if prop_MAIL2 == "None":
               prop_MAIL2=""
           prop_MAIL3=str(item.get_value('address:32931'))
           if prop_MAIL3 == "None":


  • Thanks for the answer

    I have already feared that this is the solution. But why are the tags missing? Are they hiding in another library? I have used the PHP binding before and have encountered similar problems. The APIs do not make a very mature impression.



  • I found this Document:

    http://interoperability.blob.core.windows.net/files/MS-OXPROPS/[MS-OXPROPS].pdf

    Here you can find all Attribute indexes of an Exchange server. For example:

    PidLidEmail2EmailAddress
    Property long ID (LID): 0x00008093

    This is in decimal 32915

    So, now I have a way to find proper Indexes



  • Examples can be found in the Kopano core repository and another location in the repository.

    A contact can have multiple email addresses, so in WebApp there is some logic to figure out which email address is set.


  • Kopano

          prop_MAIL1=str(item.get_value('address:32899'))
           if prop_MAIL1 == "None":
               prop_MAIL1=""
    

    note that you can write this shorter as:

    prop_MAIL1 = item.get_value(‘address:32899’) or “”


  • Kopano

    @mdoehle said in Newbie question on kopano python:

    I found this Document:

    http://interoperability.blob.core.windows.net/files/MS-OXPROPS/[MS-OXPROPS].pdf

    Here you can find all Attribute indexes of an Exchange server. For example:

    PidLidEmail2EmailAddress
    Property long ID (LID): 0x00008093

    This is in decimal 32915

    So, now I have a way to find proper Indexes

    yeah, we didn’t get around to adding all the common pidlids to eg MAPI.Tags yet. so you’ll have to define them yourself for now, eg as follows:

    PidLidEmail2EmailAddress = “PT_STRING8:PSETID_Address:0x8093”

    and then you can do:

    address = item.get_value(PidLidEmail2EmailAddress) or “”

    yeah, python-kopano is still pretty young at this point (3 years?), and we are adding things all the time. creating an abstraction layer above MAPI is not an easy task…



  • @mark-dufour
    thanks



  • Thanks for the helpful answers. Now I have just to learn a bit more python and then I will build beautiful plugins. ;-)

    Hope to see some of you at the Python Workshop in Arnheim…

    greetings
    Mathias


Log in to reply
 

Looks like your connection to Kopano Community Forum was lost, please wait while we try to reconnect.