Mike 4 лет назад
Сommit
5155f31405
1 измененных файлов с 109 добавлено и 0 удалено
  1. 109 0
      is_close_changed_notice.py

+ 109 - 0
is_close_changed_notice.py

@@ -0,0 +1,109 @@
+from enum import Enum
+import time
+from datetime import datetime
+from typing import Optional
+from pydantic import BaseModel
+from fastapi import FastAPI, Query, UploadFile, File
+from fastapi import FastAPI
+from fastapi.middleware.cors import CORSMiddleware
+import json
+import urllib.request
+import dataset,json
+import pandas as pd
+
+import dataset
+from datetime import datetime, timedelta
+
+from email.mime.text import MIMEText
+from email.mime.image import MIMEImage
+from email.mime.multipart import MIMEMultipart
+from email.mime.base import MIMEBase
+from email.mime.application import MIMEApplication
+import os
+import boto3
+from botocore.exceptions import ClientError
+
+app = FastAPI()
+
+origins = [
+    "http://172.105.205.52",
+    "http://172.105.205.52:8001",
+]
+
+app.add_middleware(
+    CORSMiddleware,
+    # allow_origins=origins,
+    allow_origins=["*"],
+    allow_credentials=True,
+    allow_methods=["*"],
+    allow_headers=["*"],
+)
+
+# 寄送逾期執行表單Email通知
+def hhh_send_mail(email, html):
+    SENDER = "Gorgeous Space <noreply@hhh.com.tw>"
+    RECIPIENT = email
+    AWS_REGION = "us-east-1"
+    CHARSET = "UTF-8"
+    client = boto3.client('ses',region_name=AWS_REGION)
+    
+    try:
+        msg = MIMEMultipart()
+        # msg["Subject"] = "逾期執行表單通知_" + str(datetime.date.today())
+        msg["Subject"] = "逾期執行表單通知_" + (datetime.now() + timedelta(hours=8)).strftime("%Y-%m-%d %H:%M")
+        msg["From"] = "noreply@hhh.com.tw"
+        msg["To"] = email
+
+        # Set message body
+        body = MIMEText(html, "html")
+     
+        msg.attach(body)
+
+        response = client.send_raw_email(
+            Source=msg["From"],
+            Destinations=[msg["To"]],
+            RawMessage={"Data": msg.as_string()}
+        )
+        print(response)
+
+    # Display an error if something goes wrong.	
+    except ClientError as e:
+        print(e.response['Error']['Message'])
+    else:
+        print("Email sent! Message ID:"),
+        print(response['MessageId'])
+
+# Choozmo DB
+# db = dataset.connect("mysql://choozmo:pAssw0rd@db.ptt.cx:3306/hhh?charset=utf8mb4")
+
+# 測試機 DB
+db = dataset.connect('mysql://hhh7796hhh:lYmWsu^ujcA1@hhh-v57-cluster.cluster-cmab1ctkglka.ap-northeast-2.rds.amazonaws.com:3306/stage?charset=utf8mb4')
+
+# 正式機 DB
+# db = dataset.connect('mysql://hhh7796hhh:lYmWsu^ujcA1@hhh-v57-cluster.cluster-cmab1ctkglka.ap-northeast-2.rds.amazonaws.com:3306/xoops?charset=utf8mb4')
+
+@app.post("/is_close_changed_notice")
+async def is_close_changed_notice():
+    return "is_close_changed_notice"
+
+    html = """
+        <!DOCTYPE html>
+        <head>
+            <meta charset="UTF-8">
+        </head>
+        <body>
+        """
+    
+    html += "is_close_changed_notice()"
+
+    html += """
+        </body>
+        </html>
+        """ 
+    
+    # Email清單
+    email_list = ['mike@choozmo.com']
+
+    # 寄送逾期執行表單Email通知
+    for email in email_list:
+        hhh_send_mail(email, html)