В настоящее время я использую Python 2.7 и пытаюсь отправить сырое электронное письмо с вложением (точнее, CSV) на несколько адресов с Boto SES. Я могу отправить обычный адрес электронной почты с send_email()
, но я все время получаю сообщение об ошибке при попытке отправить нескольким людям через send_raw_email()
.Отправить Raw Email (с приложением) нескольким получателям
Это ошибка, которую я получаю с разделителями-запятыми строку получателей:
Error sending email: SESIllegalAddressError: 400 Illegal address
<ErrorResponse xmlns="http://ses.amazonaws.com/doc/2010-12-01/">
<Error>
<Type>Sender</Type>
<Code>InvalidParameterValue</Code>
<Message>Illegal address</Message>
</Error>
<RequestId>[the request ID]</RequestId>
</ErrorResponse>
Вот с помощью этого кода:
to_emails = "[email protected], [email protected]"
# create raw email
msg = MIMEMultipart()
msg['Subject'] = 'Email subject'
msg['From'] = '[email protected]'
msg['To'] = to_emails
part = MIMEText('Attached is an important CSV')
msg.attach(part)
part = MIMEApplication(open(fname, 'rb').read())
part.add_header('Content-Disposition', 'attachment', filename=fname)
msg.attach(part)
# end create raw email
conn = boto.ses.connect_to_region(
'[my region]',
aws_access_key_id=s3_access_key,
aws_secret_access_key=s3_secret_key
)
conn.send_raw_email(msg.as_string(),
source=msg['From'],
destinations=msg['To']
)
Кроме того, здесь ошибка, я получаю от использования массив строк для получателей:
Error sending email: 'list' object has no attribute 'lstrip'
Он отлично работает, если у меня есть только один получатель, так что просто выдает ошибку, когда у меня есть массив получателей и строка получателей, разделенная запятыми. У кого-нибудь есть опыт?
У меня этот же вопрос. Можете ли вы взглянуть на свой код и сказать мне, передаете ли вы 'to_emails' в пункты назначения или' msg ['To'] '? В чем разница между тем, что у вас здесь (созданием массива), или объявлением его вначале? – Jared