亚马逊SES不与eu_west_1合作,但可以使用us_east_1 PHP

亚马逊SES不与eu_west_1合作,但可以使用us_east_1 PHP,php,amazon-web-services,amazon-ses,Php,Amazon Web Services,Amazon Ses,我正在重写一些脚本,以利用AmazonAWS的新v4签名 我正在尝试使用此页面上的代码发送电子邮件: 当我使用他的密码时,就像添加密钥一样,我得到一个错误,说我的电子邮件地址在美国东部1号上没有验证。这是有道理的,因为我所有的东西都在EU_WEST_1上 因此,我尝试添加EU端点作为第三个参数,但出现以下错误: '警告:SimpleEmailService::sendEmail:6无法解析主机:EU\u WEST\u 1' 这是一行代码,似乎可以工作,但连接到了错误的端点 $ses = new

我正在重写一些脚本,以利用AmazonAWS的新v4签名

我正在尝试使用此页面上的代码发送电子邮件:

当我使用他的密码时,就像添加密钥一样,我得到一个错误,说我的电子邮件地址在美国东部1号上没有验证。这是有道理的,因为我所有的东西都在EU_WEST_1上

因此,我尝试添加EU端点作为第三个参数,但出现以下错误:

'警告:SimpleEmailService::sendEmail:6无法解析主机:EU\u WEST\u 1'

这是一行代码,似乎可以工作,但连接到了错误的端点

$ses = new SimpleEmailService('apikey', 'secretkey');
print_r($ses->sendEmail($m));
我已经尝试添加新端点作为第三个参数,如下所示

$ses = new SimpleEmailService('apikey', 'secret','eu-west-1');
但这只会产生错误

谁能告诉我设置eu-west-1端点以发送电子邮件的正确代码


谢谢

我在AWS PHP库中遇到了同样的问题,无法将文件上传到S3。尽管我设置了从us-east-1到eu-west-1的区域,但默认情况下仍将us-east-1作为区域。我建议您在库中查找区域配置及其覆盖方式

us-east-1和eu-west-1的SES电子邮件主机不同。所以,即使您正在传递正确的API和密码,由于默认区域的原因,它也可能无法工作

如果此调试过程不起作用,您可以在发送电子邮件之前共享您所在区域的屏幕截图。我很想进一步探索。

我发现了这个问题

看起来github上的代码中有一个输入错误,文件“SimpleEmailServices.php”中有以下3行:

    const AWS_US_EAST_1 = 'email.us-east-1.amazonaws.com';
    const AWS_US_WEST_2 = 'email.us-west-2.amazonaws.com';
    const AWS_EU_WEST1 = 'email.eu-west-1.amazonaws.com';

他错过了AWS_EU_WEST1中的下划线。

这些区域不应该有破折号,而不是下划线吗?我尝试了破折号和下划线的各种组合,但结果相同