无论如何得到用于验证boto中的ses域的dkims记录?

时间:2013-05-02 01:36:00

标签: boto amazon-ses

通过验证几个域进行修改,发现手动过程相当于tedius。我的DNS控制器提供API访问,所以我想为什么不编写整个脚本。

Trick是我无法弄清楚如何访问所需的TXT&当我打入

时,来自boto的DKIMS验证的CNAME记录
dkims = conn.verify_domain_dkim('DOMAIN.COM')

它将DOMAIN.COM添加到等待验证的域列表中,但不提供所需的记录,dkims的返回值为

{'VerifyDomainDkimResponse': {
    'ResponseMetadata': {'RequestId': 'REQUEST_ID_STRING'},
    'VerifyDomainDkimResult': {'DkimTokens': {
        'member': 'DKIMS_TOKEN_STRING'}}}}

是否有一些未记录的方法来获取REQUEST_ID或TOKEN_STRING来提取这些记录?


更新

如果你有一个aws帐户,你可以看到我在

之后的记录

https://console.aws.amazon.com/ses/home?region=us-west-2#verified-senders:domain

tab:Details :: Record Type:TXT(Text)

标签:DKIM :: DNS记录1,2,3

这些是添加到DNS控制器以验证&允许DKIM签名发生

2 个答案:

答案 0 :(得分:1)

这就是我用python做的方式。

DOMINIO = 'mydomain.com'

from boto3 import Session
session = Session(
    aws_access_key_id=MY_AWS_ACCESS_KEY_ID,
    aws_secret_access_key=MY_AWS_SECRET_ACCESS_KEY,
    region_name=MY_AWS_REGION_NAME)
client = session.client('ses')

# gets VerificationToken for the domain, that will be used to add a TXT record to the DNS
result = client.verify_domain_identity(Domain=DOMINIO)
txt = result.get('VerificationToken')

# gets DKIM tokens that will be used to add 3 CNAME records
result = client.verify_domain_dkim(Domain=DOMINIO)
dkim_tokens = result.get('DkimTokens')  # this is a list

在代码的最后,您将拥有" txt"和" dkim_tokens"变量,字符串和列表。

您需要在dns中添加TXT记录,其中主机名为" _amazonses"并且值是" txt"变量

此外,您还需要在dns中添加3条CNAME记录,其中一条记录位于" dkim_tokens"列表,其中每条记录的主机名的格式为 [dkimtoken] ._ domainkey ,目标为 [dkimtoken] .dkim.amazonses.com

添加dns记录后,几分钟后(可能需要几个小时),亚马逊将检测并验证域名,并向您发送电子邮件通知。之后,您可以通过此调用启用Dkim签名:

client.set_identity_dkim_enabled(Identity=DOMINIO, DkimEnabled=True)

此处使用的方法是verify_domain_identityverify_domain_dkimset_identity_dkim_enabled。 您可能还想查看get_identity_verification_attributesget_identity_dkim_attributes

答案 1 :(得分:0)

我认为get_identity_dkim_attributes方法会返回您要查找的信息。您传入您感兴趣的域名,并返回该身份以及DKIM令牌的状态。