繁体   English   中英

你如何在 Laravel 9 的邮件外观上设置 to?

[英]How do you set the to on the mail facade of Laravel 9?

我正在使用 Laravel 9.16、sendgrid 7.11、php 8.0 和照明邮件门面

(此代码适用于以前版本的 php 和 sendgrid。)

每当我尝试发送电子邮件时,都会收到以下错误:电子邮件“”不符合 RFC 2822 的 addr-spec。

我已将代码分解为单独的步骤,以便查看是否正确设置。

$this_mailable= new WelcomeEmail($customer);
$mail_facade = Mail::to('test@gmail.com');
$mail_facade->send($this_mailable);

在我将 mail_facade 设置为它之后,它看起来像这样:

$mail_facade = {Illuminate\Mail\Pending}
to = {array}
  [0] = 'test@gmail.com'

然而,当我调用 send 它返回该错误(好像 to 没有设置)

在此处输入图像描述

from 设置在 mailer 对象中,该对象是外观内部的对象。

在此处输入图像描述

当我在我的开发环境中使用默认设置时(类似于我用于 from 的内容),会发送电子邮件,所以我不相信 from 是我的问题。

我认为正如上面评论中提到的 Tim Lewis 应该可以工作,您需要在实际选择要使用的 Mailable 类之前获取用户电子邮件!

<?php 
     $user = User::find($id);
     Mail::to($user->email)
           ->send(new WelcomeEmail($customer))
           ->subject('Welcome to my application');

如果我错了,请纠正我!

这是一个愚蠢的错误,但我想发布以防其他人犯同样的错误。 我在 config/mail.php 文件中有代码,可以将全局设置为电子邮件。 (从我的 .env 文件中读取)当我在 .env 文件中没有变量时,它会尝试用全局 to 的 null 值覆盖我在 to 中发送的电子邮件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM