已验证的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 Antwort
0

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

profile picture
EXPERTE
beantwortet vor 5 Monaten

Du bist nicht angemeldet. Anmelden um eine Antwort zu veröffentlichen.

Eine gute Antwort beantwortet die Frage klar, gibt konstruktives Feedback und fördert die berufliche Weiterentwicklung des Fragenstellers.

Richtlinien für die Beantwortung von Fragen