decode and encode email payload for quoted-printable email in replace()
This commit is contained in:
parent
8680c0a739
commit
d701b84110
|
@ -964,12 +964,22 @@ 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:
|
||||||
clone_msg = copy(msg)
|
if encoding == EmailEncoding.QUOTED:
|
||||||
new_payload = payload.replace(
|
LOG.d("handle quoted-printable replace %s -> %s", old, new)
|
||||||
encode_text(old, encoding), encode_text(new, encoding)
|
# first decode the payload
|
||||||
)
|
new_payload = quopri.decodestring(payload).decode("utf-8")
|
||||||
clone_msg.set_payload(new_payload)
|
# then replace the old text
|
||||||
return clone_msg
|
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)
|
||||||
|
new_payload = payload.replace(
|
||||||
|
encode_text(old, encoding), encode_text(new, encoding)
|
||||||
|
)
|
||||||
|
clone_msg.set_payload(new_payload)
|
||||||
|
return clone_msg
|
||||||
|
|
||||||
elif content_type in (
|
elif content_type in (
|
||||||
"multipart/alternative",
|
"multipart/alternative",
|
||||||
|
|
Loading…
Reference in New Issue