Laravel хранит email шаблоны вместе со всеми остальными шаблонами в подпапке resources/views. Это несколько странно, потому что шаблоны имеют разную семантику использования. На мой взгляд отдельная папка resources/emails выглядит более уместно.
В официальной документации я решения не нашел, поэтому предлагаю свои варианты.
Вариант 1
Добавить папку resources/emails в конфигурацию расположения шаблонов
'paths' => [
resource_path('views'),
resource_path('emails'),
],
Тогда путь до шаблона resources/emails/invite.php в классе эмейла будет
public function content()
{
return new Content(
view: 'invite',
);
}
Вариант 2
Добавить view namespace
namespace App\Providers;
use Illuminate\Support\Facades\View;
class AppServiceProvider extends ServiceProvider
{
public function boot()
{
View::addNamespace('emails', resource_path('emails'));
}
}
Путь до шаблона resources/emails/invite.php в таком варианте
public function content()
{
return new Content(
view: 'emails::invite',
);
}