AWS:使用 SES 发送邮件 -> Python 代码

用 Python 在 AWS 调用邮件接口:

import smtplib
import email.utils
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText


class SendEmail:
    def send_email(self, content):
        SENDER = '[email protected]' # 邮箱名
        SENDERNAME = 'Sender Name'
        RECIPIENT = '[email protected]' # 发送到的邮件,应该是一个 list
        USERNAME_SMTP = "xxxxxxxx" # 带有邮件权限的 IAM 帐号
        PASSWORD_SMTP = "xxxxxxxx" # 带有邮件权限的 IAM 密码
        HOST = "email-smtp.us-east-1.amazonaws.com"
        PORT = 587
        SUBJECT = 'Amazon SES Error (Python smtplib)'
        BODY_TEXT = ("Amazon SES Test\r\n"
                     "This email was sent through the Amazon SES SMTP "
                     "Interface using the Python smtplib package."
                     )
        BODY_HTML = """<html>
        <head></head>
        <body>
          <h1>Your system have something problem</h1>
          <p>{}<p>
        </body>
        </html>
                    """.format(content)

        msg = MIMEMultipart('alternative')
        msg['Subject'] = SUBJECT
        msg['From'] = email.utils.formataddr((SENDERNAME, SENDER))
        msg['To'] = RECIPIENT
        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, RECIPIENT, msg.as_string())
            server.close()
        except Exception as e:
            print("Error: ", e)
        else:
            print("Email sent!")


if __name__ == "__main__":
    sender = SendEmail()
    sender.send_email("send mail test")

猜你喜欢

转载自blog.csdn.net/qq_33811662/article/details/80787433