Advertisement
Guest User

Untitled

a guest
Feb 8th, 2019
1,120
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.07 KB | None | 0 0
  1. import smtplib
  2. from email.message import EmailMessage
  3. from http.server import BaseHTTPRequestHandler
  4. from urllib.parse import urlparse, parse_qs
  5. import json
  6.  
  7.  
  8. class calculationRequestHandler(BaseHTTPRequestHandler):
  9.    
  10.     gmail_user = 'xxxxxxx@gmail.com'  
  11.     gmail_password = 'xxxxxxxxx'
  12.     mail_recipient = 'xxxxxx@gmail.com'
  13.    
  14.     def sendGmail(self, sender, sender_pass, recipient, subject, content):
  15.         msg = EmailMessage()
  16.         msg['Subject'] = subject
  17.         msg['From'] = sender
  18.         msg['To'] = recipient
  19.         msg.set_content(content)
  20.  
  21.         try:
  22.             server = smtplib.SMTP_SSL('smtp.gmail.com', 465)
  23.             server.ehlo()
  24.             server.login(sender, sender_pass)
  25.             server.sendmail(sender, recipient, msg.as_string())
  26.         except Exception as err:
  27.             print(err)
  28.             return False
  29.        
  30.         return True
  31.  
  32.     def end_headers(self):
  33.         self.send_header('Content-type','text/plain')
  34.         # comment this line out before deployment
  35.         # self.send_header('Access-Control-Allow-Origin', '*')
  36.         BaseHTTPRequestHandler.end_headers(self)
  37.  
  38.     def parse_product(self, product):
  39.         product_dict = json.loads(product)
  40.         del product_dict["productImgSrc"]
  41.         del product_dict["productHref"]
  42.         return product_dict
  43.  
  44.     def generate_content(self, my_query):
  45.         parsed_products = []
  46.         for product in my_query['productList[]']:
  47.             parsed_products.append(self.parse_product(product))
  48.         return json.dumps({
  49.             'email': my_query['email'][0],
  50.             'produkty': parsed_products
  51.         }, ensure_ascii=False, indent=2)
  52.  
  53.     def do_GET(self):
  54.         parsed_url = urlparse(self.path)
  55.         my_query = parse_qs(parsed_url.query)
  56.         content = self.generate_content(my_query)
  57.         subject = 'ziadost o kalkulaciu - ' + my_query['email'][0]
  58.         self.sendGmail(self.gmail_user, self.gmail_password, self.mail_recipient, subject, content)
  59.         self.send_response(200)
  60.         self.end_headers()
  61.         return
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement