Join the social network of Tech Nerds, increase skill rank, get work, manage projects...
  • Sending Attachments as an E-mail in Python

    • 0
    • 0
    • 0
    • 0
    • 0
    • 0
    • 0
    • 0
    • 673
    Comment on it

    To send an e-mail with mixed content you requires to set Content-type header to multipart/mixed. Then, text and attachment sections can be specified within boundaries.
    A boundary started with two hyphens followed by a unique number, which cannot appear in the message part of the e-mail. A final boundary denoting the e-mail's final section must also end with two hyphens. For example you can see below code.

    import smtplib
    import base64

    filename = "/tmp/test.txt"

    Read a file and encode it into base64 format

    fo = open(filename, "rb") filecontent = encodedcontent = base64.b64encode(filecontent) # base64

    sender = '' reciever = ''

    marker = "AUNIQUEMARKER"

    body =""" This is a test email to send an attachement. """

    Define the main headers. part1 = """From: From Person To: To Person Subject: Sending Attachement MIME-Version: 1.0 Content-Type: multipart/mixed; boundary=%s --%s """ % (marker, marker)

    Define the message action part2 = """Content-Type: text/plain Content-Transfer-Encoding:8bit

    %s --%s """ % (body,marker)

    Define the attachment section part3 = """Content-Type: multipart/mixed; name=\"%s\" Content-Transfer-Encoding:base64 Content-Disposition: attachment; filename=%s %s --%s-- """ %(filename, filename, encodedcontent, marker) message = part1 + part2 + part3

    try: smtpObj = smtplib.SMTP('localhost') smtpObj.sendmail(sender, reciever, message) print "Successfully sent email" except Exception: print "Error: unable to send email"

 0 Comment(s)

Sign In

Sign up using

Forgot Password
Fill out the form below and instructions to reset your password will be emailed to you:
Reset Password
Fill out the form below and reset your password: