Hello, I'm writing a rss2mbox program as a first python project. I'm using feedparser, mailbox and email.* modules. I have a problem. The produced MIME- message (see below) seems right, as far as I know, but the base64-encoded part isn't decoded in the MUAs. I've tried cone and vm. The encoded content is simply displayed 'as text'.
Help? Thanks /Sebastian Content-Type: multipart/mixed; boundary="===============2078015454==" MIME-Version: 1.0 From: xkcd.com Subject: Borders Date: Wed, 15 Apr 2009 04:00:00 +0000 --===============2078015454== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit http://xkcd.com/569/ --===============2078015454== Content-Type: text/html; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 UEdsdFp5QnpjbU05SW1oMGRIQTZMeTlwYldkekxuaHJZMlF1WTI5dEwyTnZiV2xqY3k5aWIzSmta WEp6TG5CdVp5SWdkR2wwYkdVOQpJa1YyWlc1MGRXRnNiSGtnWVNCVlRpQnBjeUJ6WlhRZ2RYQXVJ Q0JCYm1RZ2RHaGxiaUJoSUd4dmJtVWdjbVZpWld3Z2NuVnVjeUJrCmIzZHVJSFJvWlNCc2FXNWxJ RzltSUdac1lXZHpJR2x1SUdaeWIyNTBJRzltSUdsMExDQnlkVzV6SUdKaFkyc2dkRzhnYUdseklH SmgKYzJVc0lHRnVaQ0JuWlhSeklHRWdhMkZxYVd4c2FXOXVJSEJ2YVc1MGN5NGlJR0ZzZEQwaVJY WmxiblIxWVd4c2VTQmhJRlZPSUdsegpJSE5sZENCMWNDNGdJRUZ1WkNCMGFHVnVJR0VnYkc5dVpT QnlaV0psYkNCeWRXNXpJR1J2ZDI0Z2RHaGxJR3hwYm1VZ2IyWWdabXhoClozTWdhVzRnWm5KdmJu UWdiMllnYVhRc0lISjFibk1nWW1GamF5QjBieUJvYVhNZ1ltRnpaU3dnWVc1a0lHZGxkSE1nWVNC cllXcHAKYkd4cGIyNGdjRzlwYm5SekxpSWdMejRLCg== --===============2078015454==-- The code: from time import strftime, gmtime from email.header import Header from email.charset import Charset from email.mime.text import MIMEText from email.mime.multipart import MIMEMultipart import mailbox, feedparser [...] def entry2msg(e, title, encoding): c = Charset(encoding) m = MIMEMultipart() m.attach(MIMEText(e.get('id', '') + '\n')) print e.title print encoding print c.output_charset type = minortype(e.get('summary_detail.type', 'plain')) body = c.body_encode((e.get('summary', '') + '\n').encode (encoding)) m.attach(MIMEText(body, type, encoding)) for i in e.get('content', []): type = minortype(i.type) body = c.body_encode(i.value.encode(encoding)) m.attach(MIMEText(body, type, encoding)) m['From'] = Header(title, encoding) m['Subject'] = Header(e.get('title', 'No title'), encoding) m['Date'] = strftime('%a, %d %b %Y %H:%M:%S +0000', e.get('date_parsed', gmtime())) # Won't get a valid mbox otherwise. m.epilogue = "\n" return mailbox.mboxMessage(m) [...] -- http://mail.python.org/mailman/listinfo/python-list