预期响应代码 354 但得到代码“503”,消息“503 5.5.1 RCPT 首先。w15sm3670747wrs.80 - gsmtp”

Expected response code 354 but got code "503", with message "503 5.5.1 RCPT first. w15sm3670747wrs.80 - gsmtp "

我正在使用 Laravel 5.8 并尝试使用以下设置从系统发送电子邮件。 什么时候一封一封发送电子邮件它工作正常但是当我一起发送一堆营销电子邮件时它在发送 20 封电子邮件并给我以下错误后停止。

我在 .env 中使用以下设置。

MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=465
MAIL_USERNAME=my user name
MAIL_PASSWORD=my gmail app password

我在发送 20 封电子邮件后收到以下错误消息

Expected response code 354 but got code "503", with message "503 5.5.1 RCPT first. w15sm3670747wrs.80 - gsmtp "

我也试过使用 TLS,但在 20 封电子邮件后它给了我同样的错误...

所有电子邮件发件人都有在特定秒内可以发送多少封电子邮件的限制。 例如亚马逊的 SES,每秒有 40 封电子邮件的限制。

我正在使用这个逻辑来解决这个问题:

$count = 0;
foreach ($users as $user) {
    $count++;
    $user->notify(
        (new Notification($emailBody))
            ->delay(intdiv($count,30))
    );
}

听起来您遇到了一个错误,即您在发送 DATA 命令时没有先发送有效的 RCPT TO 命令。这可能意味着服务器接受了 none 的 RCPT TO 命令。我建议跟踪整个 SMTP 对话,这样您就可以了解它是如何发生的。