#php #email #client-server #phpmailer #contact-form
#php #Адрес электронной почты #клиент-сервер #phpmailer #контактная форма
Вопрос:
Уважаемые убийцы гоблинов (разработчики), я пытался решить эту проблему в течение двух дней.. Я пытаюсь создать почтовую программу для маркетинговых целей для компании, основанной на PHP mailer, мой код работал нормально, когда мы отправляли HTML-файл 6-8 (более или менее) получателям, но когда мы пытались отправить HTML-файл более чем ста получателям через мой локальный хост, я получаю следующую ошибку:
2021-03-12 14:10:30 SMTP INBOUND: "452 4.5.3 Error: too many recipients"
2021-03-12 14:10:30 SERVER -> CLIENT: 452 4.5.3 Error: too many recipients
Мой код следующий :
<?php
use PHPMailerPHPMailerPHPMailer;
use PHPMailerPHPMailerSMTP;
use PHPMailerPHPMailerException;
require_once 'folder/dbh.inc.php';
include 'folder/index.inc.php';
$content = file_get_contents('body_file.html');
// An array that contains the List of recipients
$emailst = array("100-500 recipients");
$emailst_length = count($emailst) - 1;
//Load Composer's autoloader
require 'vendor/autoload.php';
//Instantiation and passing `true` enables exceptions
$mail = new PHPMailer(true);
try {
require 'folder/credentials.inc.php';
//Recipients
$mail->setFrom('emailOfTheCompany.com', 'company name');
$mail->addAddress('another email of the company', 'company name');
for ($i=0; $i <= $emailst_length; $i ) {
$mail->addBCC($emailst[$i]);
}
//Content
$mail->isHTML(true); //Set email format to HTML
$mail->CharSet = 'utf-8';
$mail->Subject = 'Welcome To Subject';
$mail->Body = $content;
//$mail->AltBody = 'This is the body in plain text for non-HTML mail clients';
$mail->send();
echo 'Message has been sent';
} catch (Exception $e) {
echo "Message could not be sent. Mailer Error: {$mail->ErrorInfo}";
}
?>
Ответ №1:
Эта ошибка возвращается отправителю, указывая на то, что список рассылки слишком велик. Причина, по которой эти ограничения установлены, заключается в защите от пользователей, рассылающих спам по электронной почте. Если у вас слишком много имен в списке, ваше электронное письмо может быть помечено как спам и обработано как таковое.
Самый простой способ предотвратить эту ошибку — создать списки рассылки с разумным количеством адресов электронной почты. По возможности менее 25 получателей, хотя ваш сервер может разрешить от 50 до 75 получателей в каждом списке.
Вы можете узнать ограничения на отправку электронной почты, проверив документацию SMTP-сервера или своего интернет-провайдера.
Комментарии:
1. Спасибо, я учитываю ваш комментарий.
2. Я думаю, что теперь я должен обойти проблему и найти способ минимизировать список получателей до 25 получателей при каждой операции отправки, пока каждый получатель в нашей базе данных не получит электронное письмо, чтобы убедить сервер в том, что наш список не слишком большой.. Возможно, условный цикл будет работать нормально
3. Точно! Хорошая идея. Не стесняйтесь принять мой ответ, если это помогло.