使用 django 和 AWS SES 签名 V4 发送电子邮件

Posted

技术标签:

【中文标题】使用 django 和 AWS SES 签名 V4 发送电子邮件【英文标题】:Send email with django and AWS SES signature V4 【发布时间】:2021-08-06 17:09:21 【问题描述】:

我有一个 django 项目并收到一封电子邮件,通知我应该将我的 ses 签名从 v2 更改为 v4。我按照本教程创建了一个新的 IAM 用户 https://docs.aws.amazon.com/ses/latest/DeveloperGuide/smtp-credentials.html 并附上了这个政治:

`

"Version": "2012-10-17",
"Statement": [
    
        "Effect": "Allow",
        "Action": [
            "ses:*"
        ],
        "Resource": "*"
    
]

`

我正在使用此库 https://pypi.org/project/django-ses/,但收到此错误消息“调用 GetSendQuota 操作时发生错误 (SignatureDoesNotMatch):我们计算的请求签名与您提供的签名不匹配。检查您的 AWS 秘密访问密钥和签名方法。详情请查阅服务文档。"

在我的环境变量中,我放了

AWS_SES_ACCESS_KEY_ID = 我在创建 SMTP 用户时获得的 Smtp 用户名

AWS_SES_SECRET_ACCESS_KEY = 我在创建 SMTP 用户时获得的 Smtp 密码

有人可以帮忙发邮件吗?

【问题讨论】:

【参考方案1】:

用于发送电子邮件的密钥不是“SMTP 凭据”。密钥是全局访问密钥,可以检索的秘密访问密钥对。

https://docs.aws.amazon.com/ses/latest/DeveloperGuide/send-email-concepts-credentials.html

【讨论】:

以上是关于使用 django 和 AWS SES 签名 V4 发送电子邮件的主要内容,如果未能解决你的问题,请参考以下文章

Django Reset PW 电子邮件不在 AWS 上发送

使用户能够通过 AWS SES 发送和接收电子邮件

使用 Swift Parse Server 和 AWS SES 请求重置电子邮件的密码

节点 AWS-SDK SES 电子邮件发送验证失败

AWS-SES:如何设置发件人地址的显示名称

使用来自 node.js 的 AWS SES 在邮件中上传 .jpg 图像附件