2011-12-20 12 views
3

から送信する方法最新のSDK for PHP(v。1.5.0)を使用しようとしています。 AmazonSESで電子メールを送信しようとしています。私は成功したpythonスクリプトで電子メールを送ったので、私のcrendentialsと他の設定は大丈夫だとわかっています。PHP SDKを使用してAmazonSESで電子メールを送信するための資格情報をaws

サンプルコードをコピーしましたが、動作しません。

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 

これはコードです::AmazonSESを呼び出すとき、私はというエラーを取得

 $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( 
        "[email protected]", 
        array("ToAddresses" => "[email protected]"), 
        array(
         "Subject.Data" => "test", 
         "Body.Text.Data" => "body test", 
         ) 
        ); 

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

私は電子メールを送信するように正しく認証情報を設定する方法を見つけることができません。

答えて

2

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

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

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

あなたが必要とする他のオプションがないことを確認するために、ソース(またはconsult the docs)にクリックスルーしてください設定する。

-2

ToAddressの値は、配列ではなく文字列でなければなりません。これはうまくいくはずです:

require_once('amazonsdk/sdk.class.php'); 

$ses = new AmazonSES(); 

$response = $ses->send_email(
    "[email protected]", 
    array("ToAddresses"=>array('[email protected]')), 
    array("Subject.Data"=>"Testing SES subject","Body.Text.Data"=>"Testing SES body.") 
); 

print_r($response); 
関連する問題