我在使用Metronic 8主题将Laravel 8项目更新到Laravel 9后遇到了发送电子邮件的问题。我没有更改任何与电子邮件相关的代码,但现在我使用Sendmail驱动程序时遇到了这个错误:
电子邮件必须具有“To”、“Cc”或“Bcc”标头。{“userId”:6,“exception”:“[object](Symfony\Component\Mime\Exception\LogicException(code:0):电子邮件必须具有“收件人”、“抄送”或“密件抄送”标题。at /home/myhome/public_html/myproject.com/vendor/symfony/mime/Message.php:128)
主计长
class MyController extends Controller
{
public function activate($id)
{
$mymodel = MyModel::find($id);
$contact = Contact::where('mymodel_id', $mymodel->id)->first();
Mail::to($contact->email)->send(new MyMail($contact));
}
}
可邮寄
class MailActive extends Mailable
{
use Queueable, SerializesModels;
protected $contact;
public function __construct(Contact $contact)
{
$this->contact = $contact;
}
public function build()
{
return $this->from('theemail@gmail.com', 'Me')
->view('emails.myemailview')
->with([
'contact' => $this->contact
]);
// $this->withSymfonyMessage(function (Email $message) {
// $message->getHeaders()->addTextHeader(
// 'addAddress', 'theemail@gmail.com'
// );
// });
// return $this;
}
}
我尝试过单独呈现邮件,效果很好;使用日志驱动程序,效果很好,如您所见,我甚至尝试过在mailable类中使用withSymfonyMessage方法绕过Mail外观,但没有任何效果。
有没有我遗漏的配置或部分?我可以回去使用SwiftMailer没有太大的麻烦Laravel 9的工作?
3条答案
按热度按时间6bc51xsx1#
使用**-〉to()**
ttp71kqs2#
电子邮件必须具有“To”、“Cc”或“Bcc”标头。{“userId”:6,“exception”:“[object](Symfony\Component\Mime\Exception\LogicException(code:0):电子邮件必须具有“收件人”、“抄送”或“密件抄送”标题。at /home/myhome/public_html/myproject.com/vendor/symfony/mime/Message.php:128)
如果
to()
丢失或者to()
方法在Mailable类中接收到空集合,则会出现上述异常nxowjjhe3#
to()邮件地址为空给定或缓存问题
**cache issue:**php artisan optimize:cl php artisan config:cache php artisan config:cl