已验证的SES实体(退出沙盒),无法在部署的网站(Amplify)上发送生产电子邮件。在本地开发环境中完全工作。AWS-SDK NodeJS。

0

【以下的问题经过翻译处理】 你好,

我在re:Post上搜索了一下,但没有找到类似的情况。我正在使用AWS-SDK和NodeJS一起,在我的网站提交表单后自动发送邮件。电子邮件地址和域名已经验证,并且已经离开沙箱。当我在本地开发模式下执行时,邮件能够发送成功,但是在线上生产模式下就不行。我已经确保将env变量包含在Amplify中。在发送SendMail之前的代码如下:

  let AWS = require("aws-sdk");

  AWS.config.update({
    accessKeyId: process.env.KEY_ID,
    secretAccessKey: process.env.KEY_SECRET,
    region: process.env.REGION_ID,
  });

我已经在IAM中将ses:Sendmail允许策略应用于与上述密钥/秘密关联的用户。我是否遗漏了什么?如果我已经正确设置了上述.config.update,生产部署时就不需要共享凭据文件了吗?策略如下:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "ses:SendRawEmail",
                "ses:SendEmail"
            ],
            "Resource": "*"
        }
    ]
}

非常感谢。

1 回答
0

【以下的回答经过翻译处理】 我用了不同的方法解决了这个问题。在这里回应一下,以防有人遇到类似的问题,我无法直接使用NodeJS使其工作。我创建了一个Lambda函数,并与API Gateway一起触发。网站上的按钮发送调用到API路由,进而使用与上述相同的代码触发Lambda函数。这样,它就能够工作,并将邮件功能与网站很好地分离开来。

profile picture
专家
已回答 5 个月前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则