Я использую сервис SES для отправки писем с шаблонами.Я запутался в том, что сделал SES.Это дает мне успешный ответ при отправке электронных писем.Вот вывод, который я получил.
Вы можете увидеть сообщение "Отправлено" на изображении
введите описание изображения здесь
и вот код,Вы видите, я вернул строку «Отправлено» в случае успеха.У меня был точный список направлений.Но никто не получает электронное письмо.
import json
import time
def send_bulk_emails(template_name, destination_list):
ses_client = session.client('ses')
response = ses_client.send_bulk_templated_email(
Source='registered-domain',
Template=template_name,
DefaultTags=[{'Name': 'X-SES-CONFIGURATION-SET','Value': 'xiq-track-events'},],
DefaultTemplateData='{ \"name\":\"Alejandro\", \"favoriteanimal\": \"zebra\" }',
Destinations= destination_list
)
if response['Status'][0]['Status'] == 'Success':
return 'Sent'
else:
print('Error: ', response)
return 'not Sent'
sqs = session.resource('sqs')
queue = sqs.Queue(
'accurate-queue-url'
)
while True:
messages = queue.receive_messages(
MaxNumberOfMessages=10,
WaitTimeSeconds = 10,
)
if len(messages) == 0:
print("No messages to process, exiting ...")
break
for item in messages:
email_receivers = json.loads(item.body)
# for des in email_receivers['destinations']:
# des['ReplacementTemplateData'] = json.dumps(des['ReplacementTemplateData'])
print('Template Name: ', email_receivers['template_name'])
print('Destinations: ', email_receivers['destinations'])
print(send_bulk_emails(email_receivers['template_name'], email_receivers['destinations'])) # it prints 'Sent' on success
if send_bulk_emails(email_receivers['template_name'], email_receivers['destinations']) == 'Sent':
# item.delete()
print('item deleted')
time.sleep(1)
break
Скажите, пожалуйста, в чем может быть причина, я пытался найти решение, но не смог найти ни одного.
Кодэто прекрасно работает.
# Попробуйте отправить письмо.
client = session.client('ses')
with open('C:\\Users\\user_name\\Documents\\complete.html', 'r') as content_file:
html_content = content_file.read()
# The HTML body of the email.
BODY_HTML = html_content
CHARSET = "UTF-8"
try:
Provide the contents of the email.
response = client.create_template(
Template={
'TemplateName': 'test-123123-123',
'SubjectPart': 'Testing subject-5',
'TextPart': 'dummy string',
'HtmlPart': BODY_HTML
}
)
e_response = client.send_bulk_templated_email(
Source='alikhalil@company.com',
Template='test-123123-123',
ReplyToAddresses=[
'ali@test.com',
'ali@example.com'
],
DefaultTags=[{'Name': 'X-SES-CONFIGURATION-SET','Value': 'xiq-track-events'},],
DefaultTemplateData='{ \"name\":\"Alejandro\", \"favoriteanimal\": \"zebra\" }',
Destinations=[
{
'Destination': { 'ToAddresses': ['ali.test@gmail.com',] },
'ReplacementTemplateData': '{ "first_name":"Ali_G", "last_name": "", "copmany_name": "", "u_designation": "", "unsubscribe_link": "http://example.com/workbench/unsubscriber/?buid=1538&contact_id=348203&email=alitest@gmail.com" }' }
]
)
delete_template = client.delete_template(
TemplateName = 'bulk_test_9'
)
# Display an error if something goes wrong.
print('Emial response: ', e_response)
except ClientError as e:
print (e)
print(e.response['Error']['Message'])