使用Laravel 5&发送电子邮件亚马逊SES

时间:2016-08-04 12:27:19

标签: email laravel-5 amazon-ses

我正在尝试使用Amazon SES驱动程序在Laravel中发送电子邮件,但不断收到此错误: “local.ERROR:异常'Swift_TransportException',带有消息'预期响应代码250,但得到代码”530“,消息”530需要验证 “'in /***/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/AbstractSmtpTransport.php:383” 在mail.php中,驱动程序是'ses',在服务中我设置了密钥,密钥和区域。还检查.env以使所有数据匹配,但仍然收到此错误。我知道这不是在亚马逊方面,因为我们有相同的帐户在另一个脚本中发送电子邮件,所以我确定在Laravel中有一些错误的配置,我只是不知道在哪里看...帮助?< / p>

3 个答案:

答案 0 :(得分:1)

您是否添加了所有必需的配置?

.env文件:

MAIL_DRIVER=smtp
MAIL_HOST=email-smtp.eu-west-1.amazonaws.com
MAIL_PORT=587
MAIL_USERNAME=**********USERNAME**********
MAIL_PASSWORD=**********PASSWORD**********
MAIL_ENCRYPTION=tls

至少,此类配置适用于Laravel 5.1

答案 1 :(得分:0)

检查config / mail.php

return [
    'driver' => env('MAIL_DRIVER', 'ses'),
    'host' => env('MAIL_HOST', ''),
    'port' => env('MAIL_PORT', 587),
    'from' => ['address' => null, 'name' => null],
    'encryption' => env('MAIL_ENCRYPTION', 'tls'),
    'username' => env('MAIL_USERNAME', ''),
    'password' => env('MAIL_PASSWORD', ''),
    'sendmail' => '/usr/sbin/sendmail -bs',
];

确保.env文件具有以下内容

MAIL_DRIVER=smtp
MAIL_HOST=email-smtp.eu-west-1.amazonaws.com // hosting site
MAIL_PORT=587
MAIL_USERNAME=your username
MAIL_PASSWORD=your password
MAIL_ENCRYPTION=tls

同时清除配置缓存

php artisan config:cache

答案 2 :(得分:0)

用于 aws/aws-sdk-php 的 Laravel 8、AWS​​ 3.178

.env 应该是这样的

#MAIL_MAILER=smtp
#MAIL_HOST=mailhog
#MAIL_PORT=1025
#MAIL_USERNAME=null
#MAIL_PASSWORD=null
#MAIL_ENCRYPTION=null
#MAIL_FROM_ADDRESS=null
#MAIL_FROM_NAME="${APP_NAME}"

MAIL_MAILER=ses
MAIL_HOST=email-smtp.ap-southeast-1.amazonaws.com
MAIL_PORT=587
MAIL_USERNAME=
MAIL_PASSWORD=
MAIL_ENCRYPTION=tls

AWS_ACCESS_KEY_ID=yourkey
AWS_SECRET_ACCESS_KEY=yoursecreaccesskey
AWS_DEFAULT_REGION=ap-southeast-1
AWS_BUCKET=

注意第一行不是MAIL_DRIVER=ses,而是MAIL_MAILER=ses