Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import smtplib
- import os
- def send_email(host, port, username, password, subject, body, mail_to, mail_from = None, reply_to = None):
- if mail_from is None: mail_from = username
- if reply_to is None: reply_to = mail_to
- message = """From: %s\nTo: %s\nReply-To: %s\nSubject: %s\n\n%s""" % (mail_from, mail_to, reply_to, subject, body)
- print (message)
- try:
- server = smtplib.SMTP(host, port)
- server.ehlo()
- server.starttls()
- server.login(username, password)
- server.sendmail(mail_from, mail_to, message)
- server.close()
- return True
- except Exception as ex:
- print (ex)
- return False
- def lambda_handler(event, context):
- # initialize variables
- username = os.environ['USERNAME']
- password = os.environ['PASSWORD']
- host = os.environ['SMTPHOST']
- port = os.environ['SMTPPORT']
- mail_from = os.environ.get('MAIL_FROM')
- mail_to = os.environ['MAIL_TO'] # separate multiple recipient by comma. eg: "abc@gmail.com, xyz@gmail.com"
- origin = os.environ.get('ORIGIN')
- origin_req = event['headers'].get('Host')
- reply_to = event['queryStringParameters'].get('reply')
- subject = event['queryStringParameters']['subject']
- body = event['body']
- # vaildate cors access
- cors = ''
- if not origin:
- cors = '*'
- elif origin_req in [o.strip() for o in origin.split(',')]:
- cors = origin_req
- # send mail
- success = False
- if cors:
- success = send_email(host, port, username, password, subject, body, mail_to, mail_from, reply_to)
- # prepare response
- response = {
- "isBase64Encoded": False,
- "headers": { "Access-Control-Allow-Origin": cors }
- }
- if success:
- response["statusCode"] = 200
- response["body"] = '{"status":true}'
- elif not cors:
- response["statusCode"] = 403
- response["body"] = '{"status":false}'
- else:
- response["statusCode"] = 400
- response["body"] = '{"status":false}'
- return response
Add Comment
Please, Sign In to add comment