Guest User

Untitled

a guest
Apr 6th, 2018
244
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.65 KB | None | 0 0
  1. # -*- coding: utf-8 -*-
  2. # This Email class is for an agent wishing to send an email to any mail server
  3. import smtplib # simple mail transfer protocol library
  4. from email.mime.multipart import MIMEMultipart
  5. from email.mime.text import MIMEText
  6. import datetime
  7.  
  8. class EmailService:
  9. # method1: GET a model number of a device by XML read
  10. def sendEmail(self, fromaddr, recipients, username, password, subject, text, mailServer):
  11. try:
  12. # agent snippet to send notification to a building operator
  13. self.fromaddr = fromaddr
  14. self.recipients = recipients
  15. self.username = username
  16. self.password = password
  17. self.msg = MIMEMultipart()
  18. self.msg['From'] = self.fromaddr
  19. self.msg['To'] = ",".join(self.recipients)
  20. self.msg['Subject'] = subject
  21. self.text = text
  22. self.msg.attach(MIMEText(self.text))
  23. self.server = smtplib.SMTP(mailServer)
  24. self.server.ehlo()
  25. self.server.starttls()
  26. self.server.ehlo()
  27. self.server.login(self.username, self.password)
  28. self.server.sendmail(self.fromaddr, self.recipients, self.msg.as_string())
  29. self.server.quit()
  30. print("Email is sent successfully")
  31. except:
  32. EmailService
  33. print('Error: Connection with SMTP server failed')
  34.  
  35. # This main method will not be executed when this class is used as a module
  36. def main():
  37. # create an object with initialized data from DeviceDiscovery Agent
  38. # requirements for instantiation1. model, 2.type, 3.api, 4. address
  39. params = {"grid_energy_import": 10, "grid_electricity_bill": 40, "grid_avg_power":300, "solar_energy_generation": 20,
  40. "solar_electricity_bill": 80, "solar_avg_power": 1200, "load_energy_consumption": 30,
  41. "load_electricity_bill": 120, "load_avg_power": 1300}
  42. sendText = "Dear Sisaengtham School,\n " \
  43. "\n" \
  44. "\tHere is your energy report for {date},\n" \
  45. "\n" \
  46. "\t1. Grid: Energy Imported={grid_energy_import} kWh, Electricity Bill={grid_electricity_bill} Baht, Average Power={grid_avg_power} W\n" \
  47. "\t2. Solar: Energy Generated={solar_energy_generation} kWh, Bill Saving from Solar={solar_electricity_bill} Baht, Average Power={solar_avg_power} W\n"\
  48. "\t3. Load: Energy Consumed={load_energy_consumption} kWh, Actual Bill if Without Solar={load_electricity_bill} Baht, Average Power={load_avg_power} W\n"\
  49. "\n" \
  50. "Best Regard,\n" \
  51. "PEA HiVE Development Team,\n" \
  52. "email: peahive@gmail.com,\n" \
  53. "FB: facebook.som/peahiveplatform,\n" \
  54. "Line: @peahive" \
  55. .format(date=datetime.datetime.now().date(), grid_energy_import=params['grid_energy_import'], grid_electricity_bill=params['grid_electricity_bill'],
  56. grid_avg_power=params['grid_avg_power'], solar_energy_generation=params['solar_energy_generation'],
  57. solar_electricity_bill=params['solar_electricity_bill'], solar_avg_power=params['solar_avg_power'],
  58. load_energy_consumption=params['load_energy_consumption'],
  59. load_electricity_bill=params['load_electricity_bill'], load_avg_power=params['load_avg_power'],)
  60. print(sendText)
  61. email = EmailService()
  62. email.sendEmail(fromaddr='from email', recipients=['receiver email 1', 'receiver email 2'], username='youremail@gmail.com', password='your application password',
  63. subject='your email subject', text=sendText, mailServer='smtp.gmail.com:587')
  64.  
  65. if __name__ == "__main__": main()
Add Comment
Please, Sign In to add comment