Howto use email module and write the get_payload to a file without headers only body msg

chuck amadi chuck.amadi at ntlworld.com
Tue Jun 22 02:35:39 EDT 2004


Hi I have managed to print the output of the get_payload to screen
but I need to write to a file as I only require the email body messages
from the mailbox.My script using the fp.readlines() function writes the
entire contents of the mailbox of cause including the headers of the
emails I do not want.

I have tried a few things but I cant get to my goal.Any ideas or
pointers I need only the email body and I cant figute out why I can
using the print statement but get those results to a file.
cheers

import sys
import os
import email
import mailbox
import StringIO
 

fp = file ("/var/spool/mail/chucka")

 
mbox = mailbox.UnixMailbox(fp, email.message_from_file)
# list of body messages.
bodies = []
 
# mail is the file object
for mail in mbox:
        print 'mail'
        print mail['Subject']
        print mail.get_content_type()#text/plain
        print mail.get_payload()
 

mailout = file("/home/chucka/pythonScript/SurveyResults1.txt","r")
                

fp = open("/var/spool/mail/chucka")
mb = mailbox.UnixMailbox(fp, email.message_from_file)

#for bdymsg in fp.xreadlines():
#for bdymsg in fp.readlines():
#for msgbodies in mb:
#    mailout.write(bdymsg)
#    bdymsg = mail.get_payload()
#    mailout.write(mail.get_payload()
 
for bmsg in mb:
        bmsg = get_payload()
        mailout.write(bmsg)
#       bmsg = [get_payload]
        print "mailbox file copied...to SurveyResults.txt"
 
# Now close the files
mailout.close()






More information about the Python-list mailing list