I am trying to use python’s imaplib and email.feedparser to grab an attachment out of a gmail inbox. The email is generated by an external party and sent to us, so I have no control over it.
The trouble is that the message I am trying to parse has msg.get_content_maintype() return 'text' instead of 'multitype'. As a result the uuencoded attachment gets concatenated with the rest of the message and I don’t see an ease way to pull it out of email.message.Message.
Any ideas how I can extract the attachment out of such an email?
If it is any help, the email has ‘Produced By Microsoft MimeOLE V6.00.3790.4862’ in it. Thunderbird also had trouble rendering this email and wasn’t able to figure out that it had an attachment. Otherwise, the message looks ok in Outlook and Gmail web client.
As email.parser.FeedParser documentation says you can use
_factoryparameter to provide your ownMessageclass. You could put your own class derived fromemail.message.Messagethat will replace message contenttype with the correct one if this message was composed in “Produced By Microsoft MimeOLE …blablabla”.I think it is safe to expect that the messagesin this particular case will always be multipart.