Fixed recipient name decoding
Use decode_headers to decode the recipient name (otherwise it will display something like =?utf-8?Q?Max_Muster?=)
This commit is contained in:
parent
1dd676f0aa
commit
2e1aaf6feb
@ -6,6 +6,7 @@
|
|||||||
import MAPI
|
import MAPI
|
||||||
import email
|
import email
|
||||||
from email.utils import getaddresses
|
from email.utils import getaddresses
|
||||||
|
from email.header import decode_header
|
||||||
|
|
||||||
from MAPI.Util import *
|
from MAPI.Util import *
|
||||||
from plugintemplates import *
|
from plugintemplates import *
|
||||||
@ -15,6 +16,14 @@ class RewriteGALAddressesToSMTP(IMapiDAgentPlugin):
|
|||||||
def __init__(self, logger):
|
def __init__(self, logger):
|
||||||
IMapiDAgentPlugin.__init__(self, logger)
|
IMapiDAgentPlugin.__init__(self, logger)
|
||||||
|
|
||||||
|
def DecodeHeaderToUTF8(self, header):
|
||||||
|
decodedHeader = decode_header(header)
|
||||||
|
headerText, headerEncoding = decodedHeader[0]
|
||||||
|
if headerEncoding is None:
|
||||||
|
return unicode(headerText)
|
||||||
|
else:
|
||||||
|
return unicode(headerText, headerEncoding, 'ignore')
|
||||||
|
|
||||||
def PreDelivery(self, session, addrbook, store, folder, message):
|
def PreDelivery(self, session, addrbook, store, folder, message):
|
||||||
headers = message.GetProps([PR_TRANSPORT_MESSAGE_HEADERS], 0)[0].Value
|
headers = message.GetProps([PR_TRANSPORT_MESSAGE_HEADERS], 0)[0].Value
|
||||||
msg = email.message_from_string(headers)
|
msg = email.message_from_string(headers)
|
||||||
@ -25,7 +34,7 @@ class RewriteGALAddressesToSMTP(IMapiDAgentPlugin):
|
|||||||
for addr in to_addrs:
|
for addr in to_addrs:
|
||||||
names.append([
|
names.append([
|
||||||
SPropValue(PR_RECIPIENT_TYPE, MAPI_TO),
|
SPropValue(PR_RECIPIENT_TYPE, MAPI_TO),
|
||||||
SPropValue(PR_DISPLAY_NAME_W, unicode(addr[0])),
|
SPropValue(PR_DISPLAY_NAME_W, self.DecodeHeaderToUTF8(addr[0])),
|
||||||
SPropValue(PR_ADDRTYPE, 'SMTP'),
|
SPropValue(PR_ADDRTYPE, 'SMTP'),
|
||||||
SPropValue(PR_EMAIL_ADDRESS, unicode(addr[1])),
|
SPropValue(PR_EMAIL_ADDRESS, unicode(addr[1])),
|
||||||
])
|
])
|
||||||
@ -33,7 +42,7 @@ class RewriteGALAddressesToSMTP(IMapiDAgentPlugin):
|
|||||||
for addr in cc_addrs:
|
for addr in cc_addrs:
|
||||||
names.append([
|
names.append([
|
||||||
SPropValue(PR_RECIPIENT_TYPE, MAPI_CC),
|
SPropValue(PR_RECIPIENT_TYPE, MAPI_CC),
|
||||||
SPropValue(PR_DISPLAY_NAME_W, unicode(addr[0])),
|
SPropValue(PR_DISPLAY_NAME_W, self.DecodeHeaderToUTF8(addr[0])),
|
||||||
SPropValue(PR_ADDRTYPE, 'SMTP'),
|
SPropValue(PR_ADDRTYPE, 'SMTP'),
|
||||||
SPropValue(PR_EMAIL_ADDRESS, unicode(addr[1])),
|
SPropValue(PR_EMAIL_ADDRESS, unicode(addr[1])),
|
||||||
])
|
])
|
||||||
|
Loading…
Reference in New Issue
Block a user