мейлу ответ От Mandrill:
Спасибо за сообщение. В этом случае кажется, что вызов API, передаваемый в , Mandrill содержит несколько недопустимых параметров - однако, поскольку вы также передаете нам массив вложений в этом вызове API, вы не увидите ответ, указывающий на то, что он недействителен Вызов API.
Всякий раз, когда Mandrill получает вложение, мы всегда будем возвращать ответ «Очередь», так как наши системы установят это сообщение в сторону, чтобы отсканировать вложение для вирусов и вредоносного ПО, прежде чем мы его обработаем каким-либо другим способом. Это означает, что если что-то не так с вызовом API, вы не будете предупреждены, и он будет «молча» сбой.
Похоже, что вы включили несколько параметров из наших стандартных API-интерфейсов API, но они предназначены для того, чтобы показать пользователям, как эти параметры будут включены.
**"subaccount"**: "customer-123",
и
**"ip_pool"**: "Main Pool",
оба вызывают этот API вызов на провал, так как вы указываете параметры, которые не существуют в вашей учетной записи. Я бы рекомендовал вам пройти через код API и удалить все, что вы не используете.Для справки, минимальный вызов API необходимо отправить по электронной почте будет выглядеть так: { "message": { "html": "<html content>", "subject": "<subject>", "from_email": "<sender email address>", "from_name": "<sender name>", "to": [ { "email": "<recipient email address>", "name": "<recipient name>", "type": "to" } ], "headers": { "Reply-To": "<reply-to address>" } }, "async": false, "ip_pool": null, "send_at": null, "key": "<valid API key>" }
Таким образом, после этого ценного ответа это то, что работа в Django для меня :)
def send_mail_msg(): import mandrill
try:
mandrill_client = mandrill.Mandrill('xxxxxxxxxxxxxxx')
message = {
# 'attachments': [{'content': 'ZXhhbXBsZSBmaWxl',
# 'name': 'myfile.txt',
# 'type': 'text/plain'}],
'auto_html': None,
'auto_text': None,
# 'bcc_address': '[email protected]',
'from_email': '[email protected]',
'from_name': 'Example Name',
'global_merge_vars': [{'content': 'merge1 content', 'name': 'merge1'}],
'google_analytics_campaign': '[email protected]',
'google_analytics_domains': ['example.com'],
# 'headers': {'Reply-To': '[email protected]'},
'html': '<p>Example HTML content</p>',
'images': [{'content': 'ZXhhbXBsZSBmaWxl',
'name': 'IMAGECID',
'type': 'image/png'}],
'important': False,
'inline_css': None,
'merge': True,
'merge_language': 'mailchimp',
# 'merge_vars': [{'rcpt': '[email protected]',
# 'vars': [{'content': 'merge2 content', 'name': 'merge2'}]}],
'metadata': {'website': 'www.example.com'},
'preserve_recipients': None,
'recipient_metadata': [{'rcpt': '[email protected]',
'values': {'user_id': 123456}}],
'return_path_domain': None,
'signing_domain': None,
# 'subaccount': 'customer-123',
'subject': 'example subject',
'tags': ['password-resets'],
'text': 'Example text content',
'to': [{'email': '[email protected]',
'name': 'Recipient Name',
'type': 'to'}],
'track_clicks': None,
'track_opens': None,
'tracking_domain': None,
'url_strip_qs': None,
'view_content_link': None}
result = mandrill_client.messages.send(message=message, async=False, ip_pool='Main Pool')
# send_at=str(datetime.datetime.now().time()))
'''
[{'_id': 'abc123abc123abc123abc123abc123',
'email': '[email protected]',
'reject_reason': 'hard-bounce',
'status': 'sent'}]
'''
return result
except mandrill.Error as e: # Mandrill errors are thrown as exceptions
print 'A mandrill error occurred: %s - %s' % (e.__class__, e)
# A mandrill error occurred: <class 'mandrill.UnknownSubaccountError'> - No subaccount exists with the id 'customer-123'
raise`
спасибо, я думаю, это должно быть проблемой с Gmail. Может быть, плохо попробуйте с учетной записью aol или yahoo. –
Извините, это неверно. «Статус», о котором говорится в приведенных здесь документах, отличается от значения «status», возвращаемого вызовом API. См. [Этот ответ от Mandrill для деталей] (http://stackoverflow.com/a/32209435/762028). – Molomby