Мне нужно отправить сотни писем с использованием разных учетных данных из laravel. Каждый мой клиент имеет свой почтовый список и должен предоставить свой собственный SMTP-сервер. Я обрабатываю этот список и отправляю электронные письма от имени клиента.Отправка больших электронных писем с использованием разных учетных данных
Это то, что у меня есть до сих пор. Он работает, но он очень медленный, и до сих пор у меня не так много писем. Я вижу проблему, когда получаю больше писем. Любые предложения по улучшению?
PS- Я использую команду консоли cron и использую Kernel, чтобы запланировать работу.
public function sendMailings($allMailings) {
foreach ($allMailings as $email) {
Config::set('mail.host', $email['smtpServer']);
Config::set('mail.port', $email['smtpPort']);
Config::set('mail.username', $email['smtpUser']);
Config::set('mail.password', $email['smtpPassword']);
Config::set('mail.encryption', $email['smtpProtocol']);
Config::set('mail.frommmail', trim($email['fromEmail']));
Config::set('mail.fromuser', trim($email['fromUser']));
Config::set('mail.subject', trim($email['subject']));
Config::set('mail.toEmail', trim($email['toEmail']));
Config::set('mail.toName', trim($email['toName']));
Config::set('mail.pretend', false);
$email_body = $email['emailBody'];
Mail::send('emails.availability, compact('email_body')
, function($message) {
$message->from(config('mail.username'), config('mail.fromUser'));
$message->replyTo(config('mail.frommmail'), config('mail.fromUser'));
$message->to(config('mail.toEmail'), config('mail.toName'))->subject(config('mail.subject'));
});
Log::info('Mail was sent');
}
}
К сожалению, я уже работаю его через хроны консольной команды через Kernel – Andrew
@ Андрей Вот интересный ответ HTTP: // StackOverflow. com/a/26323505/706466 (упорядочение по домену и поддержание связи в сети) –
@ Андрю Я думаю, что все еще очереди сообщений позволят вам выполнить их асинхронно (быстрее) (возможно, с этим https://github.com/barryvdh/laravel-async-queue) –