Laravel 不会通过 AWS SES SMTP 发送

Laravel won't send through AWS SES SMTP

我正在 运行宁 Laravel 5.4.24,我无法让它通过 Amazon SES SMTP 发送。

然而,当我下载 SwiftMailer 并且 运行 它独立时我可以。

工作..

require("vendor/autoload.php");

// Create the Transport
$transport = new Swift_SmtpTransport('email-smtp.us-west-2.amazonaws.com', 587, 'tls');
$transport->setUsername('A**************A');
$transport->setPassword('A****************************m');

// Create the Mailer using your created Transport
$mailer = new Swift_Mailer($transport);

// Create a message
$message = new Swift_Message('Wonderful Subject');

$message->setFrom(['noreply@su*****th.com' => 'John Doe']);

$message->setTo(['j*******@gmail.com' => 'Jamie']);

$message->setBody('Here is the message itself');

// Send the message
$result = $mailer->send($message);

Laravel 设置无效

MAIL_DRIVER=smtp
MAIL_HOST=email-smtp.us-west-2.amazonaws.com
MAIL_PORT=587
MAIL_USERNAME=A****************A
MAIL_PASSWORD=A************************m
MAIL_ENCRYPTION=tls

即使凭据相同,我也得到

Expected response code 250 but got code "530", with message "530 Authentication required

我试过了

php artisan queue:restart
php artisan config:cache

这就是我在代码中使用 Mail 的方式

Mail::send('emails.verify', $data, function($message) use ($data)
{
    $message->from('noreply@su*****h.com', "Jamie - ****");
    $message->subject("Please verify your email address");
    $message->to($data['email']);
});

但运气不好。

有什么想法吗?

SES 密钥和区域在 config/services.php 文件中配置。

所以对我来说,问题是即使我已经在我的其他 AWS 配置中将我的默认区域设置为 us-west-2,SES 在直接设置为 [=14= 的服务文件中使用它自己的配置] 而不是在我的 .env 文件中使用现有的 AWS 密钥。