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:
		| @@ -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])), | ||||||
|             ]) |             ]) | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 h44z
					h44z