显示未定义变量:sendemail Laravel Beautymail

Showing undefined variable: sendemail Laravel Beautymail

我无法发送电子邮件。如果我输入“$sendemail = $insert->email;”,它会显示未定义的变量,但如果我像 "biswanath123@gmail.com" 那样手动输入电子邮件,这个就可以正常工作。如何解决?

use Snowfire\Beautymail\Beautymail;

function email($id)
{
    $insert = Clientdetail::find($id);
    $sendemail = $insert->email;

    $data = [
        'name' => $insert->name,
        'email' => $insert->email,
        'phone' => $insert->phone,
        'city' => $insert->city,
        'insurance' => $insert->insurance,
        'policyno' => $insert->policyno,
        'amount' => $insert->amount,
        'pdffile' => 'http://localhost/Bitu/insurancewebsite/'.$insert->filepath
    ];

    $beautymail = app()->make(Beautymail::class);
    $beautymail->send('emails.Admin.policydetail', ["data1" => $data], function ($message) use ($sendemail) {
        $message->from('babuli.prasad.singh@gmail.com', 'Insurance Website')
            ->to($sendemail, 'Insurance Website');
    });
}

您需要在闭包中包含变量。 send 函数中的 to 方法在没有 use 关键字的情况下无法看到 $sendemail 变量。

 $beautymail->send('emails.Admin.policydetail', ["data1"=>$data], function($message) use($sendemail)
 {
    $message
     ->from('babuli.prasad.singh@gmail.com','Insurance Website')
     ->to($sendemail, 'Insurance Website')
  // etc
}

假设 $insert->email 有效,这应该可以为您解决未定义的错误。