Я пытаюсь отправить автоматические письма с помощью mail (). Он отправляет несколько писем, но не всех, около 50%. Чтобы проверить, я использую тот же адрес электронной почты для всех электронных писем, и все еще только некоторые получают.
Я использую localhost XAMPP.
Вот код:
if ($_POST['sendEmail'] == "SEND Email") { ob_start(); $buffer = str_repeat(" ", 4096); $buffer. = "\r\n some HTML \r\n"; set_time_limit(0); $noEmails = $last - $first + 1; echo "Emails sent (of $noEmails):"; for ($index = $first; $index <= $last; $index++) { $to = $email["$index"]; $subject = "Hey {$firstName[" $index "]}!"; $message = "$emailMessage"; $headers = 'From: my_account@gmail.com'."\r\n".'Reply-To: my_account@gmail.com'."\r\n".'X-Mailer: PHP/'.phpversion(); sleep(1); mail($to, $subject, $message, $headers); echo $buffer.$index; ob_flush(); flush(); } ob_end_flush(); }
Пожалуйста, дайте свои предложения.
Для отправки массовых писем вы можете установить задание cron, которое может работать через 5 или 10 минут, которое будет отправлять только небольшое количество писем за раз. Создайте ссылку в таблице, чтобы вы могли иметь запись о том, какие адреса были отправлены по электронной почте. Весь объем будет разделен на небольшие куски, и поскольку он будет работать в фоновом режиме, он не будет загружать огромную нагрузку на ваш SMTP-сервер . Вы должны использовать библиотеки PHP Mailer или SwiftMailer .
Вы можете посмотреть этот вопрос, чтобы выбрать, какая библиотека рассылки php лучше всего:
PhpMailer против Swiftmailer?
Надеюсь это поможет.