Outlook version check added
git-svn-id: svn://svn.cy55.de/Zope3/src/loops/trunk@2068 fd906abe-77d9-0310-91a1-e0d9ade77398
This commit is contained in:
		
							parent
							
								
									e5eeb2d502
								
							
						
					
					
						commit
						cd18b551dc
					
				
					 1 changed files with 73 additions and 5 deletions
				
			
		|  | @ -12,6 +12,7 @@ import cPickle | ||||||
| import traceback | import traceback | ||||||
| import time | import time | ||||||
| import email | import email | ||||||
|  | import _winreg as winreg  | ||||||
| 
 | 
 | ||||||
| from nevow import loaders, rend, static, url, inevow, tags | from nevow import loaders, rend, static, url, inevow, tags | ||||||
| from nevow.inevow import IRequest | from nevow.inevow import IRequest | ||||||
|  | @ -29,18 +30,81 @@ PICKLE_MAILS = 0 | ||||||
| DEBUG = 1 | DEBUG = 1 | ||||||
| resourcesDirectory = 'resources' | resourcesDirectory = 'resources' | ||||||
| templatesDirectory = 'templates' | templatesDirectory = 'templates' | ||||||
|  |   | ||||||
|  | # some constatnts | ||||||
|  | _REG_KEY_CONST_ = "SOFTWARE\\Classes\\mailto\\shell\\open\\command" | ||||||
|  | _OUTLOOK_2007_ = "Office12" | ||||||
|  | _OUTLOOK_2003_ = "Office11" | ||||||
|  | _OUTLOOK_2000_ = "Office10" | ||||||
|  | _OUTLOOK_EXPRESS_ = "Office10" | ||||||
| #---------------------------------------------------------- | #---------------------------------------------------------- | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| def template(fn): | def template(fn): | ||||||
|     return loaders.xmlfile(os.path.join(templatesDirectory, fn)) |     return loaders.xmlfile(os.path.join(templatesDirectory, fn)) | ||||||
| 
 | 
 | ||||||
|  | 
 | ||||||
| def getConfigIndex(agentobj, index_name, default_value, fn=None): | def getConfigIndex(agentobj, index_name, default_value, fn=None): | ||||||
|     """get the number of jobs currently in config file""" |     """get the number of jobs currently in config file""" | ||||||
|     index = len(agentobj.config.crawl) |     index = len(agentobj.config.crawl) | ||||||
|     return index |     return index | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  | def getOutlookVersion(): | ||||||
|  |     """ | ||||||
|  |     checks what outlook version we have to handle | ||||||
|  | 
 | ||||||
|  |     Returns the standard email application on this machine. | ||||||
|  |      | ||||||
|  |     Therefor we have to read out the registry key | ||||||
|  |          "HKEY_LOCAL_MACHINE\SOFTWARE\Classes\mailto\shell\open\command" | ||||||
|  | 
 | ||||||
|  |     --ATTENTION--: | ||||||
|  |         This was tested with Outlook 2007 only. | ||||||
|  |         Therefor it is possible that there are problems | ||||||
|  |         with some constants defined on the beginning. | ||||||
|  | 
 | ||||||
|  |         TODO: -> check this function with some other | ||||||
|  |                  Outlook versions installed and modify, | ||||||
|  |                  if needed the defined constants and return | ||||||
|  |                  values of the getOutlookVersion function | ||||||
|  |           | ||||||
|  |     """ | ||||||
|  |     # open registry key | ||||||
|  |     try:  | ||||||
|  |         key = winreg.OpenKey(  | ||||||
|  |                     winreg.HKEY_LOCAL_MACHINE,  | ||||||
|  |                     _REG_KEY_CONST_ )  | ||||||
|  |          | ||||||
|  |     except WindowsError:  | ||||||
|  |         return None | ||||||
|  |       | ||||||
|  |     try:  | ||||||
|  |         try:  | ||||||
|  |             # read out current standard outlook version  | ||||||
|  |             version = winreg.QueryValueEx(key, "")[0] | ||||||
|  |             # check what outlook we have  | ||||||
|  |             if version: | ||||||
|  |                 if _OUTLOOK_2007_ in version: | ||||||
|  |                     version = _OUTLOOK_2007_ | ||||||
|  |                  | ||||||
|  |                 elif _OUTLOOK_2003_ in version: | ||||||
|  |                     version = _OUTLOOK_2003_ | ||||||
|  |                  | ||||||
|  |                 elif _OUTLOOK_EXPRESS_ in version: | ||||||
|  |                     version = _OUTLOOK_EXPRESS_   | ||||||
|  |                  | ||||||
|  |         except WindowsError:  | ||||||
|  |             version = ""  | ||||||
|  |     finally:  | ||||||
|  |         # close key  | ||||||
|  |         winreg.CloseKey(key)  | ||||||
|  | 
 | ||||||
|  |     #print '--> getOutlookVersion(): Outlook version found, version is: ', version | ||||||
|  |     # return key value  | ||||||
|  |     return version  | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
| # AgentHome  | # AgentHome  | ||||||
| # root page of the Agent UI | # root page of the Agent UI | ||||||
| 
 | 
 | ||||||
|  | @ -178,8 +242,10 @@ class AgentHome(rend.Page): | ||||||
|             conf.crawl[index].interval = '%s'%(form["mailCrawlInterval"][0]) |             conf.crawl[index].interval = '%s'%(form["mailCrawlInterval"][0]) | ||||||
|             conf.save() |             conf.save() | ||||||
|             if form["mailCrawlInterval"][0] == 'oneTime': |             if form["mailCrawlInterval"][0] == 'oneTime': | ||||||
|                 if OUTLOOK2000 == 1: |                 # get version of standard mail client | ||||||
|                     #Outlook2000 (= Outlook 9) has different attributes |                 outlookVersion = getOutlookVersion() | ||||||
|  |                 # set properties depend on version | ||||||
|  |                 if outlookVersion == _OUTLOOK_2000_: | ||||||
|                     fieldsMail = ['Body', |                     fieldsMail = ['Body', | ||||||
|                                   'HTMLBody', |                                   'HTMLBody', | ||||||
|                                   'CC', |                                   'CC', | ||||||
|  | @ -189,7 +255,7 @@ class AgentHome(rend.Page): | ||||||
|                                   'Attachments', |                                   'Attachments', | ||||||
|                                   'Subject' |                                   'Subject' | ||||||
|                                  ] |                                  ] | ||||||
|                 else: |                 elif outlookVersion == _OUTLOOK_2007_: | ||||||
|                     fieldsMail = ['Body', |                     fieldsMail = ['Body', | ||||||
|                                   'BodyFormat', |                                   'BodyFormat', | ||||||
|                                   'HTMLBody', |                                   'HTMLBody', | ||||||
|  | @ -198,8 +264,10 @@ class AgentHome(rend.Page): | ||||||
|                                   'Recipients', |                                   'Recipients', | ||||||
|                                   'To', |                                   'To', | ||||||
|                                   'Attachments', |                                   'Attachments', | ||||||
|                                   'Subject' |                                   'Subject', | ||||||
|  |                                   'ReceivedTime' | ||||||
|                                  ] |                                  ] | ||||||
|  | 
 | ||||||
|                 # all form fileds in the html template are named according to |                 # all form fileds in the html template are named according to | ||||||
|                 # the dictionary name if expected to be in params, |                 # the dictionary name if expected to be in params, | ||||||
|                 # this way it is not necessary to alter the code if another |                 # this way it is not necessary to alter the code if another | ||||||
|  | @ -676,7 +744,7 @@ class RessourceView(rend.Page): | ||||||
|                                        tags.td[ |                                        tags.td[ | ||||||
|                                            tags.a(href="javascript:document.getElementsByName('ressourceEntry%i')[0].submit()"%(index))[ |                                            tags.a(href="javascript:document.getElementsByName('ressourceEntry%i')[0].submit()"%(index))[ | ||||||
|                                                tags.b[ |                                                tags.b[ | ||||||
|                                                    "[" + str(ressourceObject.data.get('SenderName')) +"]" |                                                    "[" + str(ressourceObject.data.get('From')) +"]" #SenderName | ||||||
|                                                    ] |                                                    ] | ||||||
|                                                ] |                                                ] | ||||||
|                                            ], |                                            ], | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		
		Reference in a new issue
	
	 tschmid
						tschmid