我刚刚将Laravel应用程序从5.8.x更新到6.18.x。我还更新了ENV名称声明,以反映新的Laravel模式。
AWS_ACCESS_KEY_ID、AWS_SECRET_ACCESS_KEY和AWS_DEFAULT_REGION。
我将AWS_DEFAULT_REGION设置为eu-west-1,因为我在SES设置中使用eu-west-1.amazonses.com
。
但当我现在尝试发送电子邮件时,我得到了:Error executing "SendRawEmail" on "https://email.eu-central-1.amazonaws.com"
,尽管我的应用程序中没有声明eu-central-1。一段时间以来,我一直在努力解决这个问题,但找不到解决方案。
此外,AWS似乎希望我验证to地址,这更令人困惑。我已经离开沙箱两年多了,在使用旧Laravel实例的实时服务器上,邮件仍然可以正常工作。
我没有实际的代码,因为这只是我的ENV文件和config/services.php文件中的内容:
'ses' => [
'key' => env('AWS_ACCESS_KEY_ID'),
'secret' => env('AWS_SECRET_ACCESS_KEY'),
'region' => env('AWS_DEFAULT_REGION'),
],
我真的不知道还能查到什么。
我建议您直接在config/services.php
上设置区域,看看它是否有效。如果它有效,我会检查为什么环境文件上设置的值没有向下传递。
希望这能有所帮助。
感谢您的建议。这个问题实际上与AWS无关。从5.8升级到6.x后,旧的.env文件仍在使用。因此,我对.env文件所做的任何更改都没有被使用。我不知道为什么,因为我在升级后清除了所有缓存和配置文件。但现在它又起作用了。