Aws SES -> Уведомление SNS не включает адрес получателя в открытое, событие щелчка? - PullRequest
0 голосов
/ 14 октября 2019

Я отправляю письмо от Aws SES, используя boto3. Вот пример кода Python. Проблема в том, что уведомление SNS не включает адрес получателя в Открыть , Нажмите уведомление о событии. Я получаю точно такое же уведомление в событии Open / Click, разница только в отметке времени. Поэтому я не могу знать, какой получатель открыт или нажал на это письмо. Однако адрес получателя включен в Доставка уведомление. Поэтому я предполагаю, что в событии Open / Click должна быть возможность получить адрес получателя. Моя цель - отправить одно письмо нескольким получателям, используя скрытую копию, и точно знать, кто получил это письмо и открыл его или нет. Что мне делать, я на правильном пути?

# ref: https://docs.aws.amazon.com/ses/latest/DeveloperGuide/send-using-sdk-python.html
import os
import boto3
from botocore.exceptions import ClientError
from dotenv import load_dotenv
load_dotenv()

AWS_ACCESS_KEY_ID = os.getenv("AWS_ACCESS_KEY_ID")
AWS_SECRET_ACCESS_KEY = os.getenv("AWS_SECRET_ACCESS_KEY")

SENDER = "My Name <myemail@gmail.com>"
CONFIGURATION_SET = "my-config-set"
AWS_REGION = "us-west-2"
SUBJECT = "Amazon SES Test (SDK for Python)"

# The email body for recipients with non-HTML email clients.
BODY_TEXT = ("Amazon SES Test (Python)\r\n"
             "This email was sent with Amazon SES using the "
             "AWS SDK for Python (Boto)."
            )

# The HTML body of the email.
BODY_HTML = """<html>
<head></head>
<body>
  <h1>1 - Amazon SES Test (SDK for Python)</h1>
  <p>This email was sent with
    <a href='https://aws.amazon.com/ses/'>Amazon SES</a> using the
    <a href='https://aws.amazon.com/sdk-for-python/'>
      AWS SDK for Python (Boto)</a>.</p>
</body>
</html>
            """

# The character encoding for the email.
CHARSET = "UTF-8"

# Create a new SES resource and specify a region.
client = boto3.client('ses',region_name=AWS_REGION)

# Try to send the email.
try:
    #Provide the contents of the email.
    response = client.send_email(
        Destination={
            'ToAddresses': [
                # RECIPIENT,
                "myemailaddress1@gmail.com"
            ],
            'BccAddresses': [
                'myemailaddress2@gmail.com'
            ],
        },
        Message={
            'Body': {
                'Html': {
                    'Charset': CHARSET,
                    'Data': BODY_HTML,
                },
                'Text': {
                    'Charset': CHARSET,
                    'Data': BODY_TEXT,
                },
            },
            'Subject': {
                'Charset': CHARSET,
                'Data': SUBJECT,
            },
        },
        Source=SENDER,
        ConfigurationSetName=CONFIGURATION_SET,
    )

# Display an error if something goes wrong.
except ClientError as e:
    print(e.response['Error']['Message'])
else:
    print("Email sent! Message ID:"),
    print(response['MessageId'])
...