在 PHP 中向 Amazon SES 发送电子邮件在请求触发时冻结

Sending email to Amazon SES in PHP freezes when triggered by request

无法使用 AWS SesClient 按需发送电子邮件

我正在尝试发送一封电子邮件,要求按需恢复密码。也就是说,我在 API 中收到了一个 http 请求,我通过一个名为 send_email().

的函数调用了 sendBulkTemplatedEmail()

事情是这样的:

    send_email($destination_email, $type){
        /.../   
        try {
            $SesClient->sendBulkTemplatedEmail($data_to_attach);
            $messageId = 1;
            echo("Email sent! Message ID: $messageId"."\n");
            return true;
        } catch (AwsException $e) {
            /..../
        }
    }

我怀疑在每种情况下都使用了不同的用户

当您从命令行 运行 php 时,它是 运行ning 作为您的登录用户 (ec2-user?)。但是,当它通过请求触发时,它 运行 宁作为不同的用户(apache?),并且该用户在其 ~/.aws/credentials 文件中没有凭据。

这可以通过将凭据复制到其他用户的 ~/.aws 目录来解决。