Python Django SES BotoServer错误:403禁止
我正在尝试使用Python Django SES BotoServer错误:403禁止,python,django,amazon-ses,django-ses,Python,Django,Amazon Ses,Django Ses,我正在尝试使用django ses库从django发送电子邮件,但收到错误: boto.exception.BotoServerError: BotoServerError: 403 Forbidden <ErrorResponse xmlns="http://ses.amazonaws.com/doc/2010-12-01/"> <Error> <Type>Sender</Type> <Code>Signature
django ses
库从django
发送电子邮件,但收到错误:
boto.exception.BotoServerError: BotoServerError: 403 Forbidden
<ErrorResponse xmlns="http://ses.amazonaws.com/doc/2010-12-01/">
<Error>
<Type>Sender</Type>
<Code>SignatureDoesNotMatch</Code>
<Message>The request signature we calculated does not match the signature you provided. Check your AWS Secret Access Key and signing method. Consult the service documentation for details.</Message>
</Error>
<RequestId>7e2103e0-729f-11a9-aq25-51a2dqa8ae97</RequestId>
</ErrorResponse>
我验证了域和验证的管理员地址admin@...com
AWS控制台中的地址,并从SES仪表板创建API密钥和密码
Django设置:
EMAIL\u BACKEND='django\u ses.sesbindend'
AWS\u SES\u ACCESS\u KEY\u ID=os.environ.get('AWS\u SES\u ACCESS\u KEY\u ID'))
AWS\u SES\u SECRET\u ACCESS\u KEY=os.environ.get('AWS\u SES\u SECRET\u ACCESS\u KEY'))
AWS_SES_REGION_NAME='eu-west-1'#因为我使用的是ireland服务器,但没有这个,还是同样的错误
服务器\u电子邮件地址:admin@...com'
默认的电子邮件地址=““你好”
我尝试通过以下方式发送电子邮件:
从django.core.mail导入EmailMessage
从django.conf导入设置
email=EmailMessage(
“你好”,
“世界”,
settings.DEFAULT\u来自\u电子邮件,
to=['mail@example.com']
)
email.send()
这里有什么问题?您正在通过API(sendemail或sendrawemail)而不是SMTP进行调用
AWS\u SES\u ACCESS\u KEY\u ID=os.environ.get('AWS\u SES\u ACCESS\u KEY\u ID'))
AWS\u SES\u SECRET\u ACCESS\u KEY=os.environ.get('AWS\u SES\u SECRET\u ACCESS\u KEY'))
此处的访问密钥和密钥应为具有SES访问权限的IAM用户密钥。
要进行sendemail或sendrawemail呼叫,您需要从IAM控制台使用/创建IAM用户,并使用这些凭据,确保该用户具有允许访问SES的策略
如果您从SES控制台获得密钥,则这些密钥仅适用于SMTP
SMTP和常规IAM凭据不同,但您可以转换它们,请参阅以下链接: