Как использовать Mail :: Queue в Laravel - PullRequest
0 голосов
/ 14 января 2019

Я хочу отправлять электронные письма 100 пользователям. Mail :: send () занимает слишком много времени загрузки и не может охватить все электронные письма пользователей. Я пытаюсь использовать Mail :: queue () в моем приложении, но я получаю сообщение об ошибке ниже при запуске

php artisan queue: слушай.

[ErrorExcepton] Неопределенное свойство: SuperClosure \ SerializableClosure :: $ переплета.

Обновлен файл .env с QUEUE_DRIVER = database.

Пожалуйста, помогите мне найти решение, чтобы решить эту проблему. Кроме того, я использую тот же код для запуска фоновых заданий, используя Laravel 5.3.

Вот мой код

namespace App\Console\Commands;
use Illuminate\Console\Command;
use Illuminate\Support\Facades\Mail;
use Illuminate\Support\Facades\DB;
class ProbationCronJobEmail extends Command
{
protected $signature = 'hrm:notify';
protected $description = "";

public function __construct()
{
 parent::__construct();
}

public function handle()
{
 $email = 'abc@gmail.com';
\Mail::queue('emails.probation', 
['empname'=>'abc','id'=>'123'],function($msg) use($email){
$msg->from('abc@gmail.com');
$msg->to($email);
$msg->subject('Probation List as on '.date('Y-M-d'));
});
}
}    

abc @ gmail - фиктивная электронная почта, вместо этого я использую свою корпоративную электронную почту.

если я просто наберу php artisan hrm: уведомить, не получая ошибки.

1 Ответ

0 голосов
/ 07 июня 2019

У меня есть маленький пример. Я надеюсь, что это поможет.

<?php   
   public function mails_meeting($meeting, $group, $place, $date, $message, $user)
    {
        $subject = "meeting " . $group;

        $cargos = Cargo::where('comision_id', '=', $meeting->comision_id)->where('active', '=', '1')->get();
        foreach ($cargos as $cargo) {
            $mail_reciever = $cargo->asambleista->user->email;
            Mail::queue('correos.comision_mail', ['group' => $group, 'place' => $place,
                'date' => $date,  'message' => $message, 'user' => $user],
                function ($mail) use ($subject, $mail_reciever) {
                    $mail->from('siarcaf@gmail.com', 'Automatic mail system');
                    $mail->to($mail_reciever);
                    $mail->subject($subject);
                });
        }
        return 0;
    }

В вашем_app / config / mail.php.

'sendmail' => '/usr/sbin/sendmail -bs',
    'stream' => [
        'ssl' => [
            'allow_self_signed' => true,
            'verify_peer' => false,
            'verify_peer_name' => false,
        ],
    ],

.env file

MAIL_DRIVER=smtp
MAIL_HOST=mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=your_username
MAIL_PASSWORD=your_password
MAIL_ENCRYPTION=your_conf
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...