Guest User

Untitled

a guest
Jun 19th, 2018
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.10 KB | None | 0 0
  1. import boto3
  2. from botocore.exceptions import ClientError
  3. import json
  4. import os
  5. import time
  6. import uuid
  7. import decimal
  8.  
  9. client = boto3.client('ses')
  10. sender = os.environ['SENDER_EMAIL']
  11. subject = os.environ['EMAIL_SUBJECT']
  12. configset = os.environ['CONFIG_SET']
  13. charset = 'UTF-8'
  14.  
  15. dynamodb = boto3.resource('dynamodb')
  16.  
  17. def sendMail(event, context):
  18. print(event)
  19.  
  20. try:
  21. data = event['body']
  22. content = 'Message from ' + data['firstname'] + ' ' + data['lastname'] + ',\nMessage Contents: ' + data['message']
  23. saveToDynamoDB(data)
  24. response = sendMailToUser(data, content)
  25. except ClientError as e:
  26. print(e.response['Error']['Message'])
  27. else:
  28. print("Email sent! Message Id:"),
  29. print(response['MessageId'])
  30. return "Email sent!"
  31.  
  32. def list(event, context):
  33. table = dynamodb.Table(os.environ['DYNAMODB_TABLE'])
  34.  
  35. # fetch all records from database
  36. result = table.scan()
  37.  
  38. #return response
  39. return {
  40. "statusCode": 200,
  41. "body": result['Items']
  42. }
  43.  
  44. def saveToDynamoDB(data):
  45. timestamp = int(time.time() * 1000)
  46. # Insert details into DynamoDB Table
  47. table = dynamodb.Table(os.environ['DYNAMODB_TABLE'])
  48. item = {
  49. 'id': str(uuid.uuid1()),
  50. 'firstname': data['firstname'],
  51. 'lastname': data['lastname'],
  52. 'email': data['email'],
  53. 'message': data['message'],
  54. 'createdAt': timestamp,
  55. 'updatedAt': timestamp
  56. }
  57. table.put_item(Item=item)
  58. return
  59.  
  60. def sendMailToUser(data, content):
  61. # Send Email using SES
  62. return client.send_email(
  63. Source=sender,
  64. Destination={
  65. 'ToAddresses': [
  66. data['email'],
  67. ],
  68. },
  69. Message={
  70. 'Subject': {
  71. 'Charset': charset,
  72. 'Data': subject
  73. },
  74. 'Body': {
  75. 'Html': {
  76. 'Charset': charset,
  77. 'Data': content
  78. },
  79. 'Text': {
  80. 'Charset': charset,
  81. 'Data': content
  82. }
  83. }
  84. }
  85. )
Add Comment
Please, Sign In to add comment