Support Questions

Find answers, ask questions, and share your expertise
Announcements
Check out our newest addition to the community, the Cloudera Data Analytics (CDA) group hub.

ExecuteScript python 2.7 not working as expected on server

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

New Contributor

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

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

Take a Tour of the Community
Don't have an account?
Your experience may be limited. Sign in to explore more.