亚马逊 接口开发 php,使用 Amazon SES API 和AWS SDK for PHP版本 3 向发件人授权 - 适用于 PHP 的 AWS 开发工具包...

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用 Amazon SES API 和AWS SDK for PHP版本 3 向发件人授权

要允许其他 AWS 账户、AWS Identity and Access Management 用户或 AWS 服务可代表您通过 Amazon Simple Email

Service (Amazon SES) 发送电子邮件,您需要创建发送授权策略。这是一个附加到您拥有的身份的 JSON 文档。

该策略明确列出您允许哪些人、在何种条件下使用该身份。除了您以及在策略中明确授予权限的实体之外,所有其他发件人不允许发送电子邮件。一个身份可以不附加策略、附加一个策略或附加多个策略。此外,您还可以使用一个包含多个语句的策略来实现多个策略的效果。

以下示例演示如何:

版本 3 的所有示例代码在 AWS SDK for PHP 上的此处提供。GitHub

Credentials

有关使用 Amazon SES 的更多信息,请参阅 Amazon SES 开发人员指南。

创建授权发件人

要授权其他 AWS 账户代表您发送电子邮件,请使用身份授权策略添加或更新授权,以允许从您经过验证的电子邮件地址或域发送电子邮件。要创建身份策略,请使用 PutIdentityPolicy 操作。

导入

require 'vendor/autoload.php';

use Aws\Ses\SesClient;

use Aws\Exception\AwsException;

示例代码

$SesClient = new SesClient([

'profile' => 'default',

'version' => '2010-12-01',

'region' => 'us-east-1'

]);

$identity = "arn:aws:ses:us-east-1:123456789012:identity/example.com";

$other_aws_account = "0123456789";

$policy = <<

{

"Id":"ExampleAuthorizationPolicy",

"Version":"2012-10-17",

"Statement":[

{

"Sid":"AuthorizeAccount",

"Effect":"Allow",

"Resource":"$identity",

"Principal":{

"AWS":[ "$other_aws_account" ]

},

"Action":[

"SES:SendEmail",

"SES:SendRawEmail"

]

}

]

}

EOT;

$name = "policyName";

try {

$result = $SesClient->putIdentityPolicy([

'Identity' => $identity,

'Policy' => $policy,

'PolicyName' => $name,

]);

var_dump($result);

} catch (AwsException $e) {

// output error message if fails

echo $e->getMessage();

echo "\n";

}

检索授权发件人的策略

返回与特定电子邮件身份或域身份关联的发送授权策略。要获取给定电子邮件地址或域的发送授权,请使用 GetIdentityPolicy 操作。

导入

require 'vendor/autoload.php';

use Aws\Ses\SesClient;

use Aws\Exception\AwsException;

示例代码

$SesClient = new SesClient([

'profile' => 'default',

'version' => '2010-12-01',

'region' => 'us-east-1'

]);

$identity = "arn:aws:ses:us-east-1:123456789012:identity/example.com";

$policies = ["policyName"];

try {

$result = $SesClient->getIdentityPolicies([

'Identity' => $identity,

'PolicyNames' => $policies,

]);

var_dump($result);

} catch (AwsException $e) {

// output error message if fails

echo $e->getMessage();

echo "\n";

}

列出授权发件人

要列出与当前 AWS 区域中的特定电子邮件身份或域身份关联的发送授权策略,请使用 ListIdentityPolicies 操作。

导入

require 'vendor/autoload.php';

use Aws\Ses\SesClient;

use Aws\Exception\AwsException;

示例代码

$SesClient = new SesClient([

'profile' => 'default',

'version' => '2010-12-01',

'region' => 'us-east-1'

]);

$identity = "arn:aws:ses:us-east-1:123456789012:identity/example.com";

try {

$result = $SesClient->listIdentityPolicies([

'Identity' => $identity,

]);

var_dump($result);

} catch (AwsException $e) {

// output error message if fails

echo $e->getMessage();

echo "\n";

}

撤销授权发件人的权限

使用 DeleteIdentityPolicy 操作删除关联的身份策略,删除其他 AWS 账户发送电子邮件以及电子邮件身份或域身份的授权。

导入

require 'vendor/autoload.php';

use Aws\Ses\SesClient;

use Aws\Exception\AwsException;

示例代码

$SesClient = new SesClient([

'profile' => 'default',

'version' => '2010-12-01',

'region' => 'us-east-1'

]);

$identity = "arn:aws:ses:us-east-1:123456789012:identity/example.com";

$name = "policyName";

try {

$result = $SesClient->deleteIdentityPolicy([

'Identity' => $identity,

'PolicyName' => $name,

]);

var_dump($result);

} catch (AwsException $e) {

// output error message if fails

echo $e->getMessage();

echo "\n";

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值