Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/292.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.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 Django SES BotoServer错误:403禁止_Python_Django_Amazon Ses_Django Ses - Fatal编程技术网

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凭据不同,但您可以转换它们,请参阅以下链接: