[smtplib]: How to send binary file attachement ?

Oleg Broytmann phd at phd.russ.ru
Mon Feb 28 05:31:40 EST 2000


On Mon, 28 Feb 2000, Roger Lam wrote:
> anyone got a working sample code?


#! /usr/local/bin/python -O


import sys, os, string
from mimetools import choose_boundary
from MimeWriter import MimeWriter
import base64

try:
   from cStringIO import StringIO
except ImportError:
   from StringIO import StringIO
   

def gen_mime(zip_file):
   email_from = "Oleg Broytmann <phd2 at mail.com>"
   email_to = "you at your.some.host"

   #sendmail = open("sendmail", 'w')
   sendmail = os.popen("/usr/sbin/sendmail '%s'" % email_to, 'w')
   sendmail.write("""From: %s
To: %s
Subject: %s
Precedence: bulk
MIME-Version: 1.0
""" % (email_from, email_to, zip_file))

   mime = MimeWriter(sendmail)

   firstpart = mime.startmultipartbody("related")
   firstpart.write("""\
   Your mailer does not support MIME encoding. Please upgarde to MIME-enabled
mailer (almost every modern mailer is MIME-capable).
""")

   subwriter = mime.nextpart()
   subwriter.addheader("Content-Transfer-Encoding", "base64")
   subwriter.addheader("Content-Disposition", "inline; filename=\"%s\"" % zip_file)
   subwriter.startbody("application/zip")

   zip_file = open(zip_file, 'r')
   base64.encode(StringIO(zip_file.read()), sendmail)
   zip_file.close()

   mime.lastpart()
   sendmail.close()


def run():
   zip_file = sys.argv[1]
   gen_mime(zip_file)


if __name__ == '__main__':
   run()


Oleg.
---- 
    Oleg Broytmann      Foundation for Effective Policies      phd at phd.russ.ru
           Programmers don't die, they just GOSUB without RETURN.





More information about the Python-list mailing list