用 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")