themblem/api/notify.py
2025-03-01 20:40:38 +00:00

68 lines
2.0 KiB
Python
Executable File

#!/usr/bin/env python3
import json
import argparse
import smtplib
from keys import *
from email.message import EmailMessage
from aliyunsdkcore.client import AcsClient
from aliyunsdkcore.request import CommonRequest
FROM_ADDR = 'noreply@emblem-notify.euphon.net'
def send_email(to, subject, body):
msg = EmailMessage()
msg.set_content(body)
msg['Subject'] = subject
msg['From'] = FROM_ADDR
msg['To'] = to
s = smtplib.SMTP('smtpdm.aliyun.com')
s.login(FROM_ADDR, 'N72yBNi4cJw')
s.send_message(msg)
s.quit()
def send_sms_code(mobile, code):
ak = aliyun_prod_key['access_key']
sk = aliyun_prod_key['secret']
client = AcsClient(ak, sk, 'cn-shenzhen')
request = CommonRequest()
request.set_accept_format('json')
request.set_domain('dysmsapi.aliyuncs.com')
request.set_method('POST')
request.set_protocol_type('https') # https | http
request.set_version('2017-05-25')
request.set_action_name('SendSms')
request.add_query_param('RegionId', "cn-shenzhen")
request.add_query_param('PhoneNumbers', mobile)
request.add_query_param('SignName', "themblem")
request.add_query_param('TemplateCode', 'SMS_280201599')
request.add_query_param('TemplateParam', "{\"code\":\"%s\"}" % code)
print(request)
response = client.do_action(request).decode()
print(response)
r = json.loads(response)
if r.get("Code") != "OK":
raise Exception(r["Message"])
def parse_args():
parser = argparse.ArgumentParser()
parser.add_argument("--to")
parser.add_argument("--subject")
parser.add_argument("--body", default='no content')
parser.add_argument("--mobile")
parser.add_argument("--verify-code", '-c')
return parser.parse_args()
def main():
args = parse_args()
if args.to and args.subject:
send_email(args.to, args.subject, args.body)
if args.mobile and args.verify_code:
send_sms_code(args.mobile, args.verify_code)
if __name__ == "__main__":
main()