首页 > 解决方案 > 无法使用获取请求电子邮件地址变量在 Mail::raw 中发送电子邮件

问题描述

因此,我使用“Mail::raw()”在 Laravel - PHP 中发送和发送电子邮件。从数据库获得请求后,我将接收者的电子邮件地址分配给“$email”。在这种情况下 '$message->to('$email');' 给出错误“给定 [$email] 的邮箱中的地址不符合 RFC 2822, 3.6.2。”。而不是 '$email','abcdef@test.com' 它工作得很好。而且在“Mail::row()”函数内部,无法获取请求值而不是硬编码电子邮件地址。下面是代码。

控制器.php

public function sendEmailToUser(Request $request)
    {
    $email = (String)$request->get('email');
    $messageBody = $request->get('password');

    $response = null;
    $res_type = null;

    \Mail::raw($messageBody, function ($message) {
        $message->from('abcd@gmail.com', 'TESTING');
        $message->to('$email');
        $message->subject('TESTING TITLE');
    });

    // check for failures
    if (\Mail::failures()) 
    {
        $response ="Email sent unsuccess";
        $res_type = 'warning';
    }
    else
    {
        $response ="Email sent successful";
        $res_type = 'success';

    }

    return redirect()->back()->with($response,$res_type);
}

标签: phpemaillaravel-5requestphpmailer

解决方案


最后得到了一个解决方案是使用 '$request' 和 \Mail::row() 函数。

\Mail::raw($request->password, function ($message) use($request) 
        {
            $message->from($request->fromEmail, 'TESTING');
            $message->to($request->toEmail);
            $message->subject('TESTING TITLE');
        });

推荐阅读