我正在尝试用Laravel发送邮件.
我有我的Mailable:
public $message;
public function __construct($message)
{
$this->message = $message;
}
public function build()
{
return $this->subject('Message from B&B Vintage Collectibles')->view('mail.direct');
}
Controller:
namespace App\Http\Controllers;
use App\Contact;
use App\Mail\DirectMailable;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Mail;
use App\Http\Controllers\Controller;
class DirectController extends Controller
{
public function __invoke(Request $request)
{
$user = $request->get('email');
$message = new Contact();
$message->body = $request->get('message');
Mail::to($user)->send(new DirectMailable($message));
return response()->json('Message sent', 200);
}
}
在direct.blade.php中,我有这行字。
<p>{{ $message->body }}</p>
但是当我发送邮件的时候,我得到了这样的回复。
"Undefined property: Illuminate\Mail\Message::$body..."
我有其他邮件系统的设置几乎是一样的 所以我不明白为什么这个系统不能正常工作
我试过不使用模板,但邮件发送得很好。
当我 dd($message->body)
之前 Mail::to...
我得到了正确的字符串。
在通往我的 blade 文件的路上发生了什么,让我无法访问这个属性?
正如这个主题所讨论的 https:/laracasts.comdiscusschannelslaravellaravel-mailable-not-working?page=1。
不用 $message
变量,导致在larvel框架中发送邮件时出现错误。
你可以关注这个帖子了解更多信息。
我也曾用过同样的方法,它也能用。但我做的事情是这样的... 将实际数据传递给视图
public function build()
{
return $this->subject('Message from B&B Vintage Collectibles')->view('mail.direct',[ 'message' => $this->message ]);
}