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