给定 [] 邮箱中的地址在 Laravel 上执行

Address in mailbox given [] does on Laravel

在那里我已经创建了发送电子邮件的功能,这里我的代码是这样的:

$row=DB::table('orders')
->join("cms_members","cms_members.id","=","orders.id_cms_members")
->select("orders.*","cms_members.email as email","cms_members.name as name","cms_members.phone as phone")
->where('orders.id',$id_order)
->first();

$datas = array(
      'name' => 'test',   
      'detail'=> 'test',
      'sender' => 'adamprojo@gmail.com'
  );

$customPaper = array(0,0,800,800);
$pdf = PDF::loadView('testing', $data)->setPaper($customPaper);

Mail::send('emails.temp', $datas, function($message) use($pdf)
{
  $message->from("no-reply@crocodic.net","Invoice HOP Daily rent Orders");
  $message->to($row->email)->subject('Invoice');
  $message->attachData($pdf->output(), "invoice.pdf");
});

这是我的问题,每当我想发送电子邮件时都会收到回复

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

但如果我尝试打印电子邮件,它会给我电子邮件地址。我该怎么办?

请问,有人可以为我解决上述问题吗?

这将是您的代码:

$row=DB::table('orders')
->join("cms_members","cms_members.id","=","orders.id_cms_members")
->select("orders.*","cms_members.email as email","cms_members.name as name","cms_members.phone as phone")
->where('orders.id',$id_order)
->first();

$datas = array(
        'name' => 'test',   
        'detail'=> 'test',
        'sender' => 'adamprojo@gmail.com'
    );

$customPaper = array(0,0,800,800);
$pdf = PDF::loadView('testing', $data)->setPaper($customPaper);

Mail::send('emails.temp', $datas, function($message) use($pdf, $row)
{
  $message->from("no-reply@crocodic.net","Invoice HOP Daily rent Orders");
  $message->to($row->email)->subject('Invoice');
  $message->attachData($pdf->output(), "invoice.pdf");
});

您需要通过 Mail::send() 设置 use($pdf, $row),这将获得您在 $message->to() 中使用的 $row 数据。

希望这有效!