Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Aws SES->;SNS通知不';是否在“打开”中不包括收件人地址,请单击“事件”?_Python_Amazon Web Services_Boto3_Amazon Sns_Amazon Ses - Fatal编程技术网

Python Aws SES->;SNS通知不';是否在“打开”中不包括收件人地址,请单击“事件”?

Python Aws SES->;SNS通知不';是否在“打开”中不包括收件人地址,请单击“事件”?,python,amazon-web-services,boto3,amazon-sns,amazon-ses,Python,Amazon Web Services,Boto3,Amazon Sns,Amazon Ses,我正在使用boto3从Aws SES发送电子邮件。下面是一个python代码示例。问题是SNS通知在打开,单击事件通知中不包括收件人地址。我在Open/Click事件中收到了完全相同的通知,唯一的区别是时间戳。因此,我无法知道哪个收件人打开或点击了该电子邮件。但是,收件人地址包含在递送通知中。因此,我假设应该可以在“打开/单击”事件中获取收件人地址。我的目标是使用密件抄送(bcc)向多个收件人发送一封电子邮件,并确切知道谁收到了该电子邮件以及是否打开了该电子邮件。我该怎么办,我走对了吗 #参考:

我正在使用boto3从Aws SES发送电子邮件。下面是一个python代码示例。问题是SNS通知在打开单击事件通知中不包括收件人地址。我在Open/Click事件中收到了完全相同的通知,唯一的区别是时间戳。因此,我无法知道哪个收件人打开或点击了该电子邮件。但是,收件人地址包含在递送通知中。因此,我假设应该可以在“打开/单击”事件中获取收件人地址。我的目标是使用密件抄送(bcc)向多个收件人发送一封电子邮件,并确切知道谁收到了该电子邮件以及是否打开了该电子邮件。我该怎么办,我走对了吗

#参考:https://docs.aws.amazon.com/ses/latest/DeveloperGuide/send-using-sdk-python.html
导入操作系统
进口boto3
从botocore.exceptions导入ClientError
从dotenv导入加载\u dotenv
加载_dotenv()
AWS\u ACCESS\u KEY\u ID=os.getenv(“AWS\u ACCESS\u KEY\u ID”)
AWS\u SECRET\u ACCESS\u KEY=os.getenv(“AWS\u SECRET\u ACCESS\u KEY”)
发件人=“我的名字”
CONFIGURATION\u SET=“我的配置集”
AWS_REGION=“美国西部-2”
SUBJECT=“Amazon SES测试(Python的SDK)”
#具有非HTML电子邮件客户端的收件人的电子邮件正文。
正文\文本=(“亚马逊SES测试(Python)\r\n”
“此电子邮件由Amazon SES使用发送”
“用于Python的AWS SDK(Boto)。”
)
#电子邮件的HTML正文。
BODY_HTML=“”
1-Amazon SES测试(Python的SDK)
此电子邮件是随电子邮件发送的
使用

""" #电子邮件的字符编码。 CHARSET=“UTF-8” #创建新的SES资源并指定区域。 客户机=boto3.客户机('ses',地区名称=AWS\U地区) #尝试发送电子邮件。 尝试: #提供电子邮件的内容。 响应=client.send_电子邮件( 目的地={ “ToAddresss”:[ #接受者, "myemailaddress1@gmail.com" ], “BCCADRESS”:[ 'myemailaddress2@gmail.com' ], }, 信息={ “身体”:{ “Html”:{ “字符集”:字符集, “数据”:正文和HTML, }, “文本”:{ “字符集”:字符集, “数据”:正文文本, }, }, “主题”:{ “字符集”:字符集, “数据”:主题, }, }, 来源=发送方, ConfigurationSetName=配置集合, ) #如果出现错误,则显示错误。 除ClientError作为e外: 打印(例如响应['Error']['Message']) 其他: 打印(“已发送电子邮件!邮件ID:”), 打印(响应['MessageId'])
如果一封电子邮件包含多个收件人,SES目前无法判断哪个收件人打开了该电子邮件,这是预期的,建议的方法是向一位收件人发送电子邮件,并根据邮件id保留记录。我明白了。谢谢你的答复。。他们做到了这一点,成功地传递了收件人的电子邮件。我希望他们也能实现成功打开哪个收件人。或者设计上不可能?我看到的一个值是ipAddress,它可以告诉您访问1像素图像的ip向AWS发出的请求,但这取决于具体情况,例如:hotmail,它要求用户的浏览器加载1像素图像,而gmail使用自己的ip加载1像素图像