Сервис AWS-SES не отправляет электронные письма с массовыми шаблонами при успешном ответе с использованием Boto3 - PullRequest
0 голосов
/ 26 сентября 2019

Я использую сервис 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'])
...