Я пытаюсь отправить электронное письмо в Laravel. Это работает привередливо, чтобы сказать по крайней мере. Есть пара классов для отправки электронной почты для разных условий. Единственной разницей будет разметка отправленной электронной почты и блейд-файл, в который отправляются данные перед отправкой. Я попытался использовать use Mail;
в контроллере, с которого я его отправляю, с \Mail::(...
и use Illuminate\Support\Facades\Mail;
с Mail::(...
и наоборот. Так что это не так.
Вот почтовые файлы:
Файл ToHR:
<?php
namespace App\Mail;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
use App\User;
class toHR extends Mailable
{
use Queueable, SerializesModels;
public $user;
public $job;
public $jobCount;
/**
* Create a new message instance.
*
* @return void
*/
public function __construct($user,$job,$jobCount)
{
$this->user = $user;
$this->job = $job;
$this->jobCount = $jobCount;
}
/**
* Build the message.
*
* @return $this
*/
public function build()
{
return $this->markdown('mail.toHR');
}
}
Файл ToHRFirst:
<?php
namespace App\Mail;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
use App\User;
class toHRFirst extends Mailable
{
use Queueable, SerializesModels;
public $user;
public $job;
public $jobCount;
/**
* Create a new message instance.
*
* @return void
*/
public function __construct($user,$job,$jobCount)
{
$this->user = $user;
$this->job = $job;
$this->jobCount = $jobCount;
}
/**
* Build the message.
*
* @return $this
*/
public function build()
{
return $this->markdown('mail.toHRFirst');
}
}
Имой тестовый файл JobCreated:
<?php
namespace App\Mail;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
use App\User;
class JobCreated extends Mailable
{
use Queueable, SerializesModels;
public $user;
public $job;
public $jobCount;
/**
* Create a new message instance.
*
* @return void
*/
public function __construct($user,$job,$jobCount)
{
$this->user = $user;
$this->job = $job;
$this->jobCount = $jobCount;
}
/**
* Build the message.
*
* @return $this
*/
public function build()
{
return $this->markdown('mail.job-created');
}
}
Они будут все одинаковыми, но ошибка возникает. Что дает? Я что-то пропустил? Буду признателен за любую помощь, просто направьте меня в правильном направлении.
Код, который я использую для отправки электронной почты: Используемые переменные получают значения из запросов, которые являются довольно длинными, но в любом случае они не являются проблемой.
Ver1:
Mail::to($user->email)->send(
new JobCreated($user,$job,$jobCount)
);
Ver2:
Mail::to($user->email)->send(
new toHRFirst($user,$job,$jobCount)
);
Ver3:
Mail::to($user->email)->send(
new toHR($user,$job,$jobCount)
);
Отправка работает, если используется первая версия. Другие не могут быть найдены, и это ошибка.