Support Questions

Find answers, ask questions, and share your expertise

ExecuteScript python 2.7 not working as expected on server

avatar
New Contributor

Hi all,

 

Use case is to read email and extract body and other meta data and save it in mongo.

 

msg.get_payload()

when I execute above line m getting, "2022=\n 15:23" in response. Quotable printable.

 

msg.get_payload(decode=True)

when I execute above line m getting, "2022 15:23" in response. Quotable printable is removed.

 

This is as expected and works locally, when I pass eml file. I am using the later one, "decode=True" on server but it is not decoding quotable printable.

 

quopri.decodestring(body)

Then I tried above, but still it is not decoding as expected.

 

Here is entire the script m using in local, running on Jython 2.7.2

import email
import quopri
msg = email.message_from_file(open("some_eml.eml"))
body = ""
if msg.is_multipart():
for part in msg.walk():
ctype = part.get_content_type()
cdispo = str(part.get('Content-Disposition'))
if (ctype == 'text/plain' or ctype == 'text/html') and 'attachment' not in cdispo:
body = part.get_content() # decode
print(body)
break
else:
body_byte = msg.get_payload()
print(repr(body_byte))
body = body_byte.decode("utf-8", 'ignore')
print(repr(body))
utf = quopri.decodestring(body)
text = utf.decode('utf-8', errors='replace')
print(repr(text))
print(text)

on server it is same m using without print and necessary boiler plate required for Nifi.

 

Any help appreciated.

1 REPLY 1

avatar
New Contributor

Hi, I am trying to solve the exact same problem.

Did you get decoded quoted-printable email content on the server?