【问题标题】:How to set the credentials to send an email with AmazonSES using the PHP SDK from aws如何设置凭证以使用来自 aws 的 PHP 开发工具包通过 AmazonSES 发送电子邮件
【发布时间】:2012-08-08 00:01:34
【问题描述】:

我正在尝试使用最新的 PHP SDK (v. 1.5.0)。我正在尝试使用 AmazonSES 发送电子邮件。我已经成功地使用 python 脚本发送了电子邮件,所以我知道我的凭据和其他设置没问题。

我已经复制了示例代码,但是它不起作用。调用 AmazonSES 时,我收到一条错误消息:

Catchable fatal error: Argument 1 passed to AmazonSES::__construct() must 
be an array, string given, called in sendemail.php on line 31 and 
defined in sdk-1.5.0/services/ses.class.php on line 67

这是代码:

        $AWS_KEY = "AKIEDIEDEIMIAXEOA";
        $AWS_SECRET_KEY = "Te+EDEwjndjndededededededj";

        require_once("../library/lib_aws/sdk-1.5.0/sdk.class.php");

        $amazonSes = new AmazonSES($AWS_KEY, $AWS_SECRET_KEY);

        $response = $amazonSes->send_email( 
                    "from@email.com",
                    array("ToAddresses" => "to@email.com"),
                    array(
                        "Subject.Data" => "test",
                        "Body.Text.Data" => "body test",
                        )
                    );

        if (!$response->isOK())
        {
            echo "error";
        }

我找不到如何正确设置凭据以发送电子邮件。

【问题讨论】:

    标签: php amazon-web-services amazon-ses


    【解决方案1】:

    AmazonSES 的构造函数采用带有选项的数组。检查来源:

    https://github.com/amazonwebservices/aws-sdk-for-php/blob/master/services/ses.class.php#L55

    你会想这样写:

    $amazonSes = new AmazonSES(array(
        "key" => $AWS_KEY,
        "secret" => $AWS_SECRET_KEY
    ));
    

    请点击来源(或consult the docs)以确保没有其他需要设置的选项。

    【讨论】:

      【解决方案2】:

      是的,配置文件格式和服务构造函数在 1.5 版中略有变化。他们在发行说明中提到这是一个向后不兼容的更改。

      http://aws.amazon.com/releasenotes/PHP/3719565440874916

      【讨论】:

        【解决方案3】:

        ToAddress 的值必须是数组,而不是字符串。这应该有效:

        require_once('amazonsdk/sdk.class.php');
        
        $ses = new AmazonSES(); 
        
        $response = $ses->send_email(
            "senderaddress@example.com",
            array("ToAddresses"=>array('receiveraddress@example.com')), 
            array("Subject.Data"=>"Testing SES subject","Body.Text.Data"=>"Testing SES body.")
        );
        
        print_r($response);
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2019-04-24
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-08-18
          • 1970-01-01
          • 2023-04-02
          相关资源
          最近更新 更多