List management
功能将允许我们管理邮件列表,创建具有各种主题的联系人列表,并向订阅者发送电子邮件。
此功能只能使用SES API,而不能在Amazon SES控制台中完成。
创建一个名为contact-list.json
的JSON文件,内容如下:
{
"ContactListName": "AWSomeNewsletterContactList",
"Description": "Contact list for AWSomeNewsletter subscribers",
"Topics": [
{
"TopicName": "TechNews",
"DisplayName": "Latest Technology News",
"Description": "Stay up-to-date with the latest technology trends, gadgets, and industry news.",
"DefaultSubscriptionStatus": "OPT_IN"
},
{
"TopicName": "HealthWellness",
"DisplayName": "Health and Wellness Tips",
"Description": "Get insights into maintaining a healthy lifestyle, nutrition advice, and mental wellness tips.",
"DefaultSubscriptionStatus": "OPT_IN"
},
{
"TopicName": "TravelTips",
"DisplayName": "Smart Travel Tips",
"Description": "Discover travel hacks, destination recommendations, and packing tips for your next adventure.",
"DefaultSubscriptionStatus": "OPT_IN"
},
{
"TopicName": "PersonalFinance",
"DisplayName": "Money Management Tips",
"Description": "Learn about budgeting, saving, investing, and making smart financial decisions.",
"DefaultSubscriptionStatus": "OPT_IN"
}
]
}
运行以下AWS CLI命令创建联系人列表:
aws sesv2 create-contact-list --cli-input-json file://contact-list.json
创建一个名为contact.json
的JSON文件,内容如下。将example@amazon.com
替换为我们第一个订阅者的电子邮件地址:
{
"ContactListName": "AWSomeNewsletterContactList",
"EmailAddress": "example@amazon.com",
"UnsubscribeAll": false,
"TopicPreferences": [
{
"TopicName": "TechNews",
"SubscriptionStatus": "OPT_IN"
}
],
"AttributesData": "{\"firstName\": \"Jane\",\"lastName\": \"Doe\",\"city\": \"Singapore\",\"postalCode\": \"123456\"}"
}
在上面的示例中,UnsubscribeAll
值为false
,表示联系人未退订所有主题,而值为true
则表示联系人已退订所有主题。
TopicPreferences
包括有关联系人对主题的订阅状态的信息。联系人选择加入TechNews
主题,并将收到该主题的所有电子邮件。
AttributesData
是一个JSON字段,我们可以在其中放置有关联系人的任何元数据。它必须是有效的JSON对象。
运行以下命令:
aws sesv2 create-contact --cli-input-json file://contact.json
此命令将在contact.json
文件中指定的联系人添加到文件中提到的contact list。
上面的方式一次只能添加一个联系人,也可以采用批量添加的方式
我们可以使用CSV或JSON格式。创建一个名为contacts.json
的JSON文件,内容如下。将电子邮件地址替换为我们的订阅者的电子邮件地址,并更新他们的主题偏好:
{
"EmailAddress": "example1@amazon.com",
"UnsubscribeAll": false,
"AttributesData": "{\"firstName\": \"Jane\",\"lastName\": \"Doe\",\"city\": \"NYC\",\"postalCode\": \"111111\"}",
"TopicPreferences": [
{
"TopicName": "TechNews",
"SubscriptionStatus": "OPT_IN"
},
{
"TopicName": "HealthWellness",
"SubscriptionStatus": "OPT_OUT"
},
{
"TopicName": "TravelTips",
"SubscriptionStatus": "OPT_OUT"
},
{
"TopicName": "PersonalFinance",
"SubscriptionStatus": "OPT_OUT"
}
]
}
{
"EmailAddress": "example2@amazon.com",
"UnsubscribeAll": true,
"AttributesData": "{\"firstName\": \"John\",\"lastName\": \"Doe\",\"city\": \"Seattle\",\"postalCode\": \"123123\"}",
"TopicPreferences": [
{
"TopicName": "TechNews",
"SubscriptionStatus": "OPT_OUT"
},
{
"TopicName": "HealthWellness",
"SubscriptionStatus": "OPT_OUT"
},
{
"TopicName": "TravelTips",
"SubscriptionStatus": "OPT_IN"
},
{
"TopicName": "PersonalFinance",
"SubscriptionStatus": "OPT_IN"
}
]
}
使用AWS CLI将联系人文件上传到Amazon S3存储桶:
aws s3 cp contacts.json s3://your-bucket-name/contacts.json
将your-bucket-name
替换为我们的S3存储桶名称。
我们需要创建一个Amazon SES身份策略,授予Amazon SES从我们的S3存储桶读取对象的权限。创建一个名为ses-s3-policy.json
的文件,内容如下:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "ses.amazonaws.com"
},
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::your-bucket-name/*"
}
]
}
将策略应用到我们的S3存储桶:
aws s3api put-bucket-policy --bucket your-bucket-name --policy file://ses-s3-policy.json
将your-bucket-name
替换为我们的S3存储桶名称。
使用AWS CLI启动导入作业:
aws sesv2 create-import-job --import-destination '{
"ContactListDestination": {
"ContactListName": "AWSomeNewsletter",
"ContactListImportAction": "PUT"
}
}' --import-data-source '{
"S3Url": "s3://your-bucket-name/contacts.json",
"DataFormat": "JSON"
}'
将your-bucket-name
替换为我们的存储桶名称。
要验证联系人是否已添加到Contact list,运行:
aws sesv2 list-contacts --contact-list-name "AWSomeNewsletterContactList" --page-size 10
我们应该会以JSON格式看到我们在前面步骤中添加的联系人列表,以及他们的主题订阅偏好。
要从列表中删除联系人,请运行:
aws sesv2 delete-contact --contact-list-name "AWSomeNewsletterContactList" --email-address "ContactEmailAddress"
同样,我们也可以通过在JSON文件中指定他们的电子邮件地址来批量删除联系人。我们将使用"ContactListImportAction": "DELETE"
而不是"ContactListImportAction": "PUT"
。
通过遵循这些步骤,我们可以轻松管理邮件列表,创建具有各种主题的联系人列表,并向订阅者发送电子邮件。使用Amazon SES API v2,我们可以简化电子邮件营销和通信工作,以相关的信息向受众发送有针对性的消息。