Я пытаюсь отправить электронное письмо с подтверждением на адрес электронной почты регистрируемого клиента, но оно дает мне ошибку, а не отправляет уведомление по электронной почте. Любая помощь будет фантастической! Изо всех сил здесь, не понимаю, где находится объект, и ошибка бесполезна af.
Я сделал несколько штампов и дампов, и обнаружил, что проблема в методе сборки mailable, куда он отправляет электронную почту. Письмо отправлено, URL-адрес правильный, учетная запись подтверждена, но я получаю эту ошибку, когда я нахожусь в процессе отправки электронного письма, что не позволяет мне перенаправить на страницу подтверждения или входа в систему после регистрации нового пользователя.
Спасибо:)
Создать пользователя:
$validator = Validator::make($request->all(), [
'name' => ['required', 'alpha_dash', 'string', 'max:25', 'unique:customers'],
'email' => ['required', 'string', 'email', 'max:255', 'unique:customers'],
'password' => ['required', 'string', 'min:6', 'confirmed'],
]);
if ( $validator->fails() ) {
$messages = $validator->messages();
return Redirect::back()->withErrors($validator)->withInput();
foreach($errors->all() as $error) {
echo $error;
}
} elseif ( $validator->passes() ) {
$customer = customer::create([
'name' => $request['name'],
'email' => $request['email'],
'password' => Hash::make($request['password']),
'VerifyToken' => Str::random(40),
]);
$customer->SendEmailVerificationNotification();
return redirect()->intended('login/customer');
}
SendEmailVerificationNotifaction:
public function toMail($notifiable)
{
$verificationUrl = $this->verificationUrl($notifiable);
if (static::$toMailCallback) {
return call_user_func(static::$toMailCallback, $notifiable, $verificationUrl);
}
Mail::to($notifiable->email)->send(new validate_email($notifiable->email));
}
validate_email mailable:
namespace App\Mail;
use Illuminate\Support\Facades\URL;
use Illuminate\Bus\Queueable;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Queue\ShouldQueue;
class validate_email extends Mailable
{
use Queueable, SerializesModels;
public function __construct($data)
{
$this->email = $data;
}
public function build()
{
$url = URL::temporarySignedRoute(
'verifyCustomer', now()->addMinutes(100),['email'=>$this->email]
);
return $this->from('support@xxxx.com')
->view('auth.mail.validate_email')->with([
'url' => $url,
'email' => $this->email
]);
}
}