| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 | import email.utilsimport smtplibfrom email.mime.multipart import MIMEMultipartfrom email.mime.text import MIMETextimport boto3from Ansjer.config import AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, LOGGERclass S3Email:    def faEmail(self, sys_msg_text, username):        SENDER = 'rdpublic@ansjer.com'  # 邮箱名        SENDERNAME = 'rdpublic@ansjer.com'        USERNAME_SMTP = 'AKIA2E67UIMD6MOSFKXW'  # 带有邮件权限的 IAM 帐号        PASSWORD_SMTP = 'BHuQ6EQTtFK4qh46o9omO9ZzO3NXzjk/JCWLXnVFmqzM'  # 带有邮件权限的 IAM 密码        PORT = '587'        HOST = 'email-smtp.us-east-1.amazonaws.com'        SUBJECT = sys_msg_text        BODY_TEXT = (sys_msg_text                     )        BODY_HTML = """<html>        <head></head>        <body>          <h1>{}<h1>        </body>        </html>                    """.format(sys_msg_text)        msg = MIMEMultipart('alternative')        msg['Subject'] = SUBJECT        msg['From'] = email.utils.formataddr((SENDERNAME, SENDER))        msg['To'] = username        part1 = MIMEText(BODY_TEXT, 'plain')        part2 = MIMEText(BODY_HTML, 'html')        msg.attach(part1)        msg.attach(part2)        try:            server = smtplib.SMTP(HOST, PORT)            server.ehlo()            server.starttls()            server.ehlo()            server.login(USERNAME_SMTP, PASSWORD_SMTP)            server.sendmail(SENDER, username, msg.as_string())            server.close()        except Exception as e:            print("Error: ", e)        else:            print("Email sent!")    @staticmethod    def send_email(subject, data, username):        """        发送亚马逊SES电子邮件        @param subject: 标题        @param data: 内容        @param username: 发送到邮箱        @return: 成功 | 失败        """        client = boto3.client('ses', region_name='us-east-1',                              aws_access_key_id=AWS_ACCESS_KEY_ID[1],                              aws_secret_access_key=AWS_SECRET_ACCESS_KEY[1])        # 构建邮件请求        response = client.send_email(            Source='rdpublic@ansjer.com',  # 发件人地址            Destination={                'ToAddresses': [                    username  # 收件人地址                ]            },            Message={                'Subject': {                    'Data': subject  # 邮件主题                },                'Body': {                    'Html': {                        'Data': data  # 邮件正文的HTML内容                    }                }            }        )        LOGGER.info(f'to {username},result:{response}')        return response['ResponseMetadata']['HTTPStatusCode'] == 200
 |