Guest User

Untitled

a guest
Jul 23rd, 2018
511
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.87 KB | None | 0 0
  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>&nbsp;</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