给定 \[\] 邮箱中的地址不符合 RFC 2822, 3.6.2。当电子邮件在变量中时

新手上路,请多包涵

我有一个正确的电子邮件地址。我已经回应了它,但是当我发送它时,我收到以下错误:

  Address in mailbox given [] does not comply with RFC 2822, 3.6.2.

为什么?我使用 laravel (swift mailer) 发送电子邮件:

 $email = email@address.com

然后当我发送它时,就会抛出错误。

但如果我直接使用字符串,它会发送它。

这是块:

  Mail::send('emails.activation', $data, function($message){
            $message->to($email)->subject($subject);
        });
                ->with('title', "Registered Successfully.");

原文由 user3077503 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.7k
1 个回答

我将在这里为初学者解释它。在回调函数之外声明的任何变量都超出了该回调函数的范围。所以如果你想在回调函数中使用这样的变量,你必须把它们放在 use() 中。就像问题一样: \(email 和 \)subject 必须在回调之外声明,所以使用 use() 来使用这些变量。此外,它可以是任意数量的变量。

 Mail::send('emails.activation', $data, function($message) use ($email, $subject) {
    $message->to($email)->subject($subject);
});

对于 RFC 部分,SwiftMailer 严格执行 RFC 标准,因为它应该 bcz 邮件服务,如 Google、Apple 严格监控与电子邮件相关的所有内容并将电子邮件标记为不遵循这些标准的域的垃圾邮件。

原文由 Raush 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题