amazon ses получаю ошибку result = conn.send_raw_email(msg.as_string(), AttributeError: у объекта 'NoneType' нет атрибута 'send_raw_email'
Я пытаюсь отправить необработанное электронное письмо, используя ses и получая сообщение об ошибке result = conn.send_raw_email(msg.as_string(), AttributeError: Объект NoneType не имеет атрибута send_raw_email. Не могли бы вы взглянуть? Спасибо большое.
import boto.ses
from email.mime.application import MIMEApplication
from email.mime.multipart import MIMEMultipart
def send_ses():
to_emails = ['contact.ranvijay@gmail.com']
COMMASPACE = ', '
msg = MIMEMultipart()
msg['Subject'] = 'test'
msg['From'] = 'contact.ranvijay@gmail.com'
msg['To'] = COMMASPACE.join(to_emails)
# msg.attach(MIMEText(body))
filename = '/Users/Mac/test/products/error_csv/price_upload_error_2016-05-10 19:50:06.868506.csv'
attachment = open(filename, 'rb').read()
part = MIMEApplication(attachment)
part.add_header('Content-Disposition', 'attachment', filename='test.csv')
msg.attach(part)
try:
conn = boto.ses.connect_to_region(
'US-EAST-1',
aws_access_key_id=AWS_ACCESS_KEY,
aws_secret_access_key=AWS_SECRET_KEY
)
except Exception as e:
return e.__str__()
result = conn.send_raw_email(msg.as_string(),
source=msg['From'],
destinations=to_emails
)
return result if 'ErrorResponse' in result else ''
if __name__ == '__main__':
send_ses()
1 ответ
Ты звонишь conn.send_raw_email
и получите ответ, что вы пытаетесь получить доступ к.send_raw_email NoneType. Следовательно, conn == None
, Вы должны проверить это. Документы для boto.ses.connect_to_region говорят, что он возвращает None, если вы указали неверное имя региона. Из этого списка регионов похоже, что ваша проблема в том, что название региона должно быть в нижнем регистре, а не в верхнем.
Если вы используете python до версии 2.5, вам следует проверить свой env для BOTO, потому что некоторые регионы не поддерживаются в aws SES для python до версии 2.5.
вы можете проверить поддержку вашего региона в своей оболочке, если вы используете boto
$python
>>> from boto import ses
>>> ses.regions()
[RegionInfo:us-east-1] #this is region supported for python version