thorpedosg

Untitled

Jul 24th, 2018
973
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import smtplib
  2. from email.message import EmailMessage
  3. from email.message import MIMEPart
  4. from email.mime.multipart import MIMEMultipart
  5. from base64 import encodebytes
  6. import mimetypes
  7.  
  8. mSubject = 'Another new family reunion'
  9. mFrom = 'me@mgmail.com'
  10. mTo = 'mom@yahoo.com'
  11. mCC = 'sis@roadrunner.com'
  12. sLogin = 'me@gmail.com'
  13. sPass = 'mypass'
  14. mServer = "smtp.gmail.com"
  15. mPort = 465
  16.  
  17. filename1 = "file1.jpg"
  18. filename2 = "file2.jpg"
  19. filename3 = "file3.jpg"
  20. image_cid1 = filename1 + "@xxxx1"
  21. image_cid2 = filename2 + "@xxxx2"
  22.  
  23.  
  24. def inline_part(filename, icid):
  25. """ Creates a MIMEMultipart for embedded images """
  26. part = MIMEMultipart('related')
  27.  
  28. fp = open(filename, 'rb')
  29. part.set_payload(encodebytes(fp.read()).decode())
  30. fp.close()
  31. part.add_header('Content-ID', '<' + icid + '>')
  32. part.add_header("Content-Transfer-Encoding", "base64")
  33. return part
  34.  
  35. def attach_part(filename):
  36. """ Creates a MIMEPart for attached images """
  37. part = MIMEPart()
  38. fp = open(filename, 'rb')
  39. part.set_payload(encodebytes(fp.read()).decode())
  40. fp.close()
  41.  
  42. part.add_header("Content-Type", mimetypes.guess_type(filename2)[0] + '; filename="%s"' % filename)
  43. part.add_header("Content-Transfer-Encoding", "base64")
  44. part.add_header('Content-Disposition', 'attachment; filename="%s"' % filename)
  45. return part
  46.  
  47. #set up the mime types
  48. mimetypes.init()
  49.  
  50. # Create the container email message.
  51. msg = EmailMessage()
  52.  
  53. msg['Subject'] = mSubject
  54. msg['From'] = mFrom
  55. msg['To'] = mTo
  56. msg['Bcc'] = mCC
  57.  
  58. body ="""<HTML>
  59. <head></head>
  60. <body>
  61. This is a test email to send an attachment.
  62. This is a linked image:
  63. <div align="center"><p><img src="http://www.freedigitalphotos.net/images/previews/success-road-sign-10031660.jpg"><br></p><p> </p></div>
  64. we will try to add two in-line images as well, named file1.jpg and file2.jpg
  65. """
  66. # add each of the the in-line photo body info
  67. body += ' <p>This is file 1</p>n<p><img id="'+ filename1 + '" src="cid:' + image_cid1 + '" alt="file01.jpg"></p>n'
  68. body += ' <p>This is file 2</p>n<p><img id="'+ filename2 + '" src="cid:' + image_cid2 + '" alt="file02.jpg"></p>n'
  69.  
  70. #add the rest of the body
  71. body +=""" <p>and we have attached one file "file3.jpg"
  72. </body>
  73. </HTML>
  74. """
  75.  
  76. # add the body to the message
  77. msg.add_alternative(body, subtype='html')
  78. msg.set_boundary("===myBoundry")
  79. # attach the in-line files
  80. msg.attach(inline_part(filename1, image_cid1))
  81. msg.attach(inline_part(filename2, image_cid2))
  82. # attach the attachment file
  83. msg.attach(attach_part(filename3))
  84.  
  85. # Open a connection to the mail server, log-on, send the message and disconnect
  86. try:
  87. server = smtplib.SMTP_SSL(mServer, mPort)
  88. server.set_debuglevel(0)
  89. server.login(sLogin, sPass)
  90. server.send_message(msg)
  91. server.quit()
  92. print ("Message sent Successfully")
  93. except Exception as e:
  94. print ("Error sending mail:nt" + str(e))
Add Comment
Please, Sign In to add comment