Navigation

    Kopano
    • Register
    • Login
    • Search
    • Categories
    • Get Official Kopano Support
    • Recent
    Statement regarding the closure of the Kopano community forum and the end of the community edition

    Newbie question on kopano python

    Scripting
    4
    9
    2273
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • mdoehle
      mdoehle last edited by

      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

      1 Reply Last reply Reply Quote 0
      • shcshc
        shcshc last edited by

        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":
        mark dufour 1 Reply Last reply Reply Quote 0
        • mdoehle
          mdoehle last edited by

          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.

          1 Reply Last reply Reply Quote 0
          • mdoehle
            mdoehle last edited by

            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

            mark dufour 1 Reply Last reply Reply Quote 0
            • jelly
              jelly last edited by

              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.

              1 Reply Last reply Reply Quote 0
              • mark dufour
                mark dufour @shcshc last edited by

                      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 “”

                shcshc 1 Reply Last reply Reply Quote 0
                • mark dufour
                  mark dufour @mdoehle last edited by

                  @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…

                  1 Reply Last reply Reply Quote 0
                  • shcshc
                    shcshc @mark dufour last edited by

                    @mark-dufour
                    thanks

                    1 Reply Last reply Reply Quote 0
                    • mdoehle
                      mdoehle last edited by

                      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

                      1 Reply Last reply Reply Quote 0
                      • First post
                        Last post