首页 > 解决方案 > Laravel Markdown 电子邮件不起作用没有为 [mail] 定义提示路径

问题描述

我创建了一个用户注册页面,使用 Laravel 7 验证邮件。但我的降价邮件不起作用。给出“ InvalidArgumentException 没有为 [mail] 定义提示路径。(查看:C:\xampp\htdocs\user_mgmt\resources\views\mail\VerifyMail.blade.php) ”错误。

这是我的 RegistrationController 页面。

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Users_Profile;
use App\User;
use App\Mail\VerifyMail;
use Sentinel;
use Activation;
use Mail;
use Illuminate\Support\Facades\Validator;

class RegisterController extends Controller
{
    function register(Request $req)
    {
        $users_profile= new Users_Profile;

        $this->validate($req, [
            'username' => ['required', 'string', 'max:50', 'unique:users', 'alpha_dash'],
            'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],
            'password' => ['required', 'string', 'min:8', 'confirmed'],
        ]);

        $user = Sentinel::register($req->all());
        
        $users_profile->email=$req->input('email'); 
        $users_profile->save();

        $req->session()->put('user',$req->input('username'));
        
        $activate = Activation::create($user);
        $this->sendActivationEmail($user, $activate->code);
        return redirect('verify');
    }

    public function sendActivationEmail($user, $code) {
        Mail::send(
            'mail.VerifyMail',
            ['user' => $user, 'code' =>$code],
            function($message) use ($user) {
                $message->to($user->email);
                $message->subject("Hello $user->name Activate Your Account.");
            }
        );
    }
}

这是我的邮件刀片模板

@component('mail::message')
#Thank you for registering in LMS

Please, click on the Link below to activate your account

@component('mail::button', ['url' => 'www.google.com' ])
Verify
@endcomponent

Thanks,<br>
{{ config('app.name') }}
@endcomponent

在我的邮件控制器中,我在构建函数中使用降价而不是视图。

标签: phplaravelemail

解决方案


您应该使用可邮寄的. 它更干净,更简洁。在 Laravel 中,应用程序发送的每种类型的电子邮件都表示为“可邮寄”类。要解决您的问题,您需要在可邮寄的 build() 方法中调用 markdown() 方法,而不是 view() 方法。请参见下面的示例:

/**
 * Build the message.
 *
 * @return $this
 */
 public function build()
 {
     return $this->from('example@example.com')
                 ->markdown('emails.orders.shipped');
 }

推荐阅读