mirror of
https://github.com/tgbot-collection/YYeTsBot.git
synced 2025-11-25 19:37:34 +08:00
新的邮件模版
This commit is contained in:
@@ -10,6 +10,7 @@ __author__ = "Benny <benny.think@gmail.com>"
|
||||
import contextlib
|
||||
import logging
|
||||
import os
|
||||
import pathlib
|
||||
import smtplib
|
||||
import time
|
||||
from datetime import datetime
|
||||
@@ -20,6 +21,9 @@ from email.utils import formataddr, parseaddr
|
||||
import pytz
|
||||
import requests
|
||||
from akismet import Akismet
|
||||
from jinja2 import Template
|
||||
|
||||
logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(name)s - %(levelname)s - %(message)s')
|
||||
|
||||
|
||||
def ts_date(ts=None):
|
||||
@@ -33,23 +37,31 @@ def _format_addr(s):
|
||||
return formataddr((Header(name, 'utf-8').encode(), addr))
|
||||
|
||||
|
||||
def send_mail(to: str, subject: str, body: str):
|
||||
def generate_body(context):
|
||||
template = pathlib.Path(__file__).parent.joinpath('templates', "email_template.html")
|
||||
with open(template) as f:
|
||||
return Template(f.read()).render(**context)
|
||||
|
||||
|
||||
def send_mail(to: str, subject: str, context: dict):
|
||||
user = os.getenv("email_user")
|
||||
password = os.getenv("email_password")
|
||||
host = os.getenv("email_host") or "localhost"
|
||||
port = os.getenv("email_port") or "1025" # mailhog
|
||||
from_addr = os.getenv("from_addr") or "yyets@dmesg.app"
|
||||
|
||||
msg = MIMEText(body, 'html', 'utf-8')
|
||||
msg = MIMEText(generate_body(context), 'html', 'utf-8')
|
||||
msg['From'] = _format_addr('YYeTs <%s>' % from_addr)
|
||||
msg['To'] = _format_addr(to)
|
||||
msg['Subject'] = Header(subject, 'utf-8').encode()
|
||||
|
||||
logging.info("logging to mail server...")
|
||||
if port == "1025":
|
||||
server = smtplib.SMTP(host, int(port))
|
||||
else:
|
||||
server = smtplib.SMTP_SSL(host, int(port))
|
||||
server.login(user, password)
|
||||
logging.info("sending email to %s", to)
|
||||
server.sendmail(from_addr, [to], msg.as_string())
|
||||
server.quit()
|
||||
|
||||
@@ -104,6 +116,4 @@ class Cloudflare:
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
cf = Cloudflare()
|
||||
cf.clear_fw()
|
||||
cf.ban_new_ip("3.3.3.3")
|
||||
send_mail("benny.think@gmail.com", "主题", {"username": "test123", "text": "测试内容<b>不错</b>"})
|
||||
|
||||
Reference in New Issue
Block a user