decode and encode email payload for quoted-printable email in replace()
This commit is contained in:
parent
8680c0a739
commit
d701b84110
|
@ -964,6 +964,16 @@ def replace(msg: Message, old, new) -> Message:
|
||||||
encoding = get_encoding(msg)
|
encoding = get_encoding(msg)
|
||||||
payload = msg.get_payload()
|
payload = msg.get_payload()
|
||||||
if type(payload) is str:
|
if type(payload) is str:
|
||||||
|
if encoding == EmailEncoding.QUOTED:
|
||||||
|
LOG.d("handle quoted-printable replace %s -> %s", old, new)
|
||||||
|
# first decode the payload
|
||||||
|
new_payload = quopri.decodestring(payload).decode("utf-8")
|
||||||
|
# then replace the old text
|
||||||
|
new_payload = new_payload.replace(old, new)
|
||||||
|
clone_msg = copy(msg)
|
||||||
|
clone_msg.set_payload(quopri.encodestring(new_payload.encode()))
|
||||||
|
return clone_msg
|
||||||
|
else:
|
||||||
clone_msg = copy(msg)
|
clone_msg = copy(msg)
|
||||||
new_payload = payload.replace(
|
new_payload = payload.replace(
|
||||||
encode_text(old, encoding), encode_text(new, encoding)
|
encode_text(old, encoding), encode_text(new, encoding)
|
||||||
|
|
Loading…
Reference in New Issue