Jar*_*red 7 python email boto mime-types amazon-ses
我在这个问题上遇到了很大的问题 - 关于SO的另一个问题是没有解决它的问题:发送原始电子邮件(带附件)到多个收件人
我的代码(有效)很简单:
def send_amazon_email_with_attachment(html, subject, now, pre):
dummy = 'test@example.com'
recipients = ['test1@exampl.ecom', 'test2@example.com', 'test3@example.com']
connS3 = S3Connection('IDENTIFICATION','PASSWORD')
b = connS3.get_bucket('BUCKET_NAME')
key = b.get_key('FILE_NAME.pdf')
temp = key.get_contents_as_string()
msg = MIMEMultipart('alternative')
msg['Subject'] = subject
msg['From'] = 'My Name <test@example.com>'
msg.preamble = 'Multipart message.\n'
part1 = MIMEText(u"Attached is the report", 'plain')
part2 = MIMEText(html, 'html')
msg.attach(part1)
msg.attach(part2)
part = MIMEApplication(temp) #read binary
part.add_header('Content-Disposition', 'attachment', filename='FILE_NAME.pdf')
msg.attach(part)
conn = boto.ses.connect_to_region('us-east-1', aws_access_key_id='AUTH_ID', aws_secret_access_key='AUTH_PW')
for recipient in recipients:
print recipient
msg['To'] = recipient
result = conn.send_raw_email(msg.as_string(), source=msg['From'], destinations=recipient)
Run Code Online (Sandbox Code Playgroud)
但是,有一个警告......这是每个收件人的循环.任何变化都不起作用.将列表传递给msg['Bcc']或msg['BCC']将返回错误,列表无法被删除(与发布的问题完全相同).传递用逗号分隔的字符串会在返回的XML中出现Amazon SES问题,说"非法电子邮件".因为我在特定情况下只收到来自亚马逊的错误,所以我认为这是程序在遇到API调用之前的错误.
有MIMEMultipart专家有什么想法吗?
小智 14
基本上,您需要使用2种不同的格式在2个不同的位置指定电子邮件收件人.
def send_amazon_email_with_attachment(html, subject, now, pre):
dummy = 'test@example.com'
recipients = ['test1@exampl.ecom', 'test2@example.com', 'test3@example.com']
connS3 = S3Connection('IDENTIFICATION','PASSWORD')
b = connS3.get_bucket('BUCKET_NAME')
key = b.get_key('FILE_NAME.pdf')
temp = key.get_contents_as_string()
msg = MIMEMultipart('alternative')
msg['Subject'] = subject
msg['From'] = 'My Name <test@example.com>'
msg['To'] = ', '.join(recipients)
msg.preamble = 'Multipart message.\n'
part1 = MIMEText(u"Attached is the report", 'plain')
part2 = MIMEText(html, 'html')
msg.attach(part1)
msg.attach(part2)
part = MIMEApplication(temp) #read binary
part.add_header('Content-Disposition', 'attachment', filename='FILE_NAME.pdf')
msg.attach(part)
conn = boto.ses.connect_to_region('us-east-1', aws_access_key_id='AUTH_ID', aws_secret_access_key='AUTH_PW')
result = conn.send_raw_email(msg.as_string(), source=msg['From'], destinations=recipients)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6478 次 |
| 最近记录: |