diff options
author | Caolán McNamara <caolanm@redhat.com> | 2013-07-13 21:45:29 +0100 |
---|---|---|
committer | David Tardon <dtardon@redhat.com> | 2013-07-15 11:28:02 +0000 |
commit | aab42944ad90e86ac43dedc7e11be8eb2019d833 (patch) | |
tree | 2856f86c77d4cd31cd562e32899b6b7abfc85354 /scripting | |
parent | 763b7edb7ac501a93e67e3c679734a74e766c7bf (diff) |
Related: fdo#66761 the double-encoding bug appears gone in python 3.3.2
i.e. I see the bug in our built-in python3 3.3.0 but not in my system python
3.3.2 and there's a raft of email related bug fixes in the 3.3.2/3.3.1
python Changelog
Change-Id: I257770cd0ec41fc3b2f2a638009b075b9a2f325f
(cherry picked from commit 24078e3501042e8693ef1f9d3edebbc47e37ce12)
Related: fdo#66761 we want the bytes, not a str representation of them
Change-Id: I3c268b0c51f7e1ddd2fa6588f40412a33f316b52
(cherry picked from commit f460556bfa6bd55df3cd4b2288524d63db284d7e)
Reviewed-on: https://gerrit.libreoffice.org/4909
Reviewed-by: David Tardon <dtardon@redhat.com>
Tested-by: David Tardon <dtardon@redhat.com>
(cherry picked from commit c71f67198cd6fc98f77289c4f0276a45d19700d8)
Reviewed-on: https://gerrit.libreoffice.org/4914
Diffstat (limited to 'scripting')
-rwxr-xr-x | scripting/source/pyprov/mailmerge.py | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/scripting/source/pyprov/mailmerge.py b/scripting/source/pyprov/mailmerge.py index af10dbe4a967..3cfb6d3175eb 100755 --- a/scripting/source/pyprov/mailmerge.py +++ b/scripting/source/pyprov/mailmerge.py @@ -182,12 +182,20 @@ class PyMailSMTPService(unohelper.Base, XSmtpService): textmsg['MIME-Version'] = '1.0' try: + #it's a string, get it as utf-8 bytes textbody = textbody.encode('utf-8') except: - textbody = str(textbody.value).encode('utf-8') + #it's a bytesequence, get raw bytes + textbody = textbody.value if sys.version >= '3': - #http://stackoverflow.com/questions/9403265/how-do-i-use-python-3-2-email-module-to-send-unicode-messages-encoded-in-utf-8-w - textbody = textbody.decode('iso8859-1') + if sys.version_info.minor < 3 or (sys.version_info.minor == 3 and sys.version_info.micro <= 1): + #http://stackoverflow.com/questions/9403265/how-do-i-use-python-3-2-email-module-to-send-unicode-messages-encoded-in-utf-8-w + #see http://bugs.python.org/16564, etc. basically it now *seems* to be all ok + #in python 3.3.2 onwards, but a little busted in 3.3.0 + + textbody = textbody.decode('iso8859-1') + else: + textbody = textbody.decode('utf-8') c = Charset('utf-8') c.body_encoding = QP textmsg.set_payload(textbody, c) @@ -469,15 +477,15 @@ class PyMailMessage(unohelper.Base, XMailMessage): self.bccrecipients.append(bccrecipient) def getRecipients( self ): if dbg: - print("PyMailMessage.getRecipients: " + self.recipients, file=dbgout) + print("PyMailMessage.getRecipients: " + str(self.recipients), file=dbgout) return tuple(self.recipients) def getCcRecipients( self ): if dbg: - print("PyMailMessage.getCcRecipients: " + self.ccrecipients, file=dbgout) + print("PyMailMessage.getCcRecipients: " + str(self.ccrecipients), file=dbgout) return tuple(self.ccrecipients) def getBccRecipients( self ): if dbg: - print("PyMailMessage.getBccRecipients: " + self.bccrecipients, file=dbgout) + print("PyMailMessage.getBccRecipients: " + str(self.bccrecipients), file=dbgout) return tuple(self.bccrecipients) def addAttachment( self, aMailAttachment ): if dbg: |