Я создаю приложение Laravel 5.8 в Localhost.
Я настроил свой файл .env следующим образом:
MAIL_DRIVER=smtp
MAIL_HOST=mail.mydomain.com
MAIL_PORT=465 (took from my hosting provider)
MAIL_USERNAME=info@mydomain.com
MAIL_PASSWORD=******
MAIL_ENCRYPTION=ssl
Я запустил php artisan make:mail DemoEmail
и настроил файл DemoMail.php
следующим образом:
<?php
namespace App\Mail;
use Illuminate\Bus\Queueable;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Queue\ShouldQueue;
class DemoEmail extends Mailable
{
use Queueable, SerializesModels;
/**
* The demo object instance.
*
* @var Demo
*/
public $demo;
/**
* Create a new message instance.
*
* @return void
*/
public function __construct($demo)
{
$this->demo = $demo;
}
/**
* Build the message.
*
* @return $this
*/
public function build()
{
return $this->from('info@mydomain.com')
->view('mails.demo')
->text('mails.demo_plain');
}
}
Затем я построил представления в views/mails/demo.blade.php
и views/mails/demo_plain.blade.php
.
Я зарегистрировал маршрут в web.php
, Route::get('/sendmail', 'MailController@send');
.
Наконец, я сгенерировал и собрал контроллер:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Mail\DemoEmail;
use Illuminate\Support\Facades\Mail;
class MailController extends Controller
{
public function send()
{
$objDemo = new \stdClass();
$objDemo->sender = 'John';
$objDemo->receiver = 'John Doe';
Mail::to("myaccount@gmail.com")->send(new DemoEmail($objDemo));
// Mail::to("myaccount@mydomain.com")->send(new DemoEmail($objDemo));
}
}
Когда я отправляю письмо на мой почтовый аккаунт в личном домене, оно приходит. При отправке письма на любой аккаунт Gmail оно не поступает. Я пытался проверить папки со спамом, и он пуст. Также я включил менее защищенное приложение.
Ошибки не выбрасываются. Есть идеи, почему?