3

最新の SDK for PHP (v. 1.5.0) を使用しようとしています。AmazonSES で E メールを送信しようとしています。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";
        }

電子メールを送信するための資格情報を正しく設定する方法が見つかりません。

4

3 に答える 3

8

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
));

ソースをクリックして (またはドキュメントを参照して)、設定する必要のある他のオプションがないことを確認してください。

于 2011-12-20T23:10:08.643 に答える
2

バージョン 1.5 では、構成ファイルの形式とサービス コンストラクターがわずかに変更されました。彼らはこれを、リリース ノートで下位互換性のない変更として言及しました。

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

于 2011-12-21T21:05:25.110 に答える
-2

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);
于 2012-08-07T16:01:34.217 に答える