在使用AWS SES发送HTML格式的邮件时,可能会出现样式损坏的问题。这是因为SES在SMTP传输期间会自动将邮件内容压缩为Base64编码,以便更好地处理二进制数据,但是这可能会导致邮件样式被破坏。为了解决这个问题,可以通过将邮件内容添加到MIMEMessage中,并将编码设置为QuotedPrintable来避免Base64编码。
以下是示例代码:
from email.mime.multipart import MIMEMultipart from email.mime.text import MIMEText from email.mime.image import MIMEImage from email.mime.base import MIMEBase from email.encoders import encode_quopri
msg = MIMEMultipart()
html = "
css = "h1 { color: red; }" css_part = MIMEBase('text', 'css') css_part.set_payload(css) encode_quopri(css_part) css_part.add_header('Content-Disposition', 'attachment', filename='email.css') msg.attach(css_part)
img_file = open('image.jpg', 'rb') img = MIMEImage(img_file.read()) img_file.close() msg.attach(img)
ses.send_raw_email(RawMessage=msg.as_string())