123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109 |
- 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)
|