在AWS SES中,域名验证是必需的,以确保您拥有发送邮件的域名的所有权。以下是一个解决方法,其中包含代码示例来解决AWS SES域名验证困难的问题:
步骤1:创建域名验证DNS记录 您需要在您的域名注册商中创建一个DNS记录,以向AWS SES验证您拥有该域名的所有权。以下是一个示例代码,您可以使用该代码来自动创建DNS记录。
import boto3
def create_txt_record(domain, value):
route53_client = boto3.client('route53')
# 验证域名
response = route53_client.change_resource_record_sets(
HostedZoneId='YOUR_HOSTED_ZONE_ID',
ChangeBatch={
'Changes': [
{
'Action': 'CREATE',
'ResourceRecordSet': {
'Name': '_amazonses.' + domain,
'Type': 'TXT',
'TTL': 300,
'ResourceRecords': [
{
'Value': '"' + value + '"'
}
]
}
}
]
}
)
print(response)
步骤2:验证域名 在您创建了DNS记录之后,您需要使用以下代码验证域名。
import boto3
def verify_domain(domain):
ses_client = boto3.client('ses')
# 验证域名
response = ses_client.verify_domain_identity(
Domain=domain
)
print(response)
步骤3:等待域名验证 域名验证可能需要一些时间才能完成。您可以使用以下代码来等待域名验证完成。
import boto3
import time
def wait_for_verification(domain):
ses_client = boto3.client('ses')
while True:
response = ses_client.get_identity_verification_attributes(
Identities=[domain]
)
verification_status = response['VerificationAttributes'][domain]['VerificationStatus']
if verification_status == 'Success':
print('域名验证成功!')
break
elif verification_status == 'Failed':
print('域名验证失败!')
break
else:
print('等待域名验证...')
time.sleep(10)
请注意,上述代码示例中的域名(YOUR_DOMAIN
)和托管区域ID(YOUR_HOSTED_ZONE_ID
)应替换为您自己的域名和托管区域ID。
使用以上解决方法,您可以通过自动创建DNS记录并等待域名验证来解决AWS SES域名验证困难的问题。
上一篇:AWS SES - 退信邮件