У меня есть база данных с подписчиками в списке рассылки.Усовершенствования почтового списка php
Я использую php-скрипт для извлечения адресов электронной почты из базы данных, а затем отправлю электронное письмо по каждому адресу. Это работало нормально, пока количество подписчиков не выросло до больших.
Теперь сценарий истекает, и некоторые подписчики сообщают, что получают более одного электронного письма, некоторые подписчики вообще не получают электронное письмо.
Я думаю, что проблема может заключаться в том, что сценарий требует много времени для выполнения из-за многих строк, возвращаемых из базы данных (163 подписчика), но я уверен, что. У меня нет доступа к файлу php.ini (сервер - платформа с асалом)
Есть ли у кого-нибудь предложения по улучшению моего сценария? Как я могу убедиться, что каждый абонент получает электронное письмо и есть ли способ избежать дублирования?
<?php
//Database connection script
include_once 'inc/dbconnect.php';
$message='Test message';
$query="SELECT * FROM subscribers WHERE type=1";
$res1=mysqli_query($dbh, $query) or die(mysqli_error());
while($user=mysqli_fetch_array($res1)){
$from='[email protected]';
$fromname='My name';
$to=$user['email'];
$subject='Message subject';
$header='From: [email protected]
Reply-To: [email protected]
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
X-mailer: PHP '.phpversion();
if(mail($to, $subject, $message, $header)){
print 'Mail sent to '.$to.'<br>';
}
else{
print 'Could not send mail to '.$to.'<br>';
}
}
Посмотрите на _set \ _time \ _limit (seconds) _. Работает только в том случае, если сервер не работает в безопасном режиме. Альтернативой может быть разделение выбора (INDEX, OFFSET) по частям. – hherger
Добавить каждый адрес электронной почты в ОЦЦ, чтобы они не могли видеть друг друга, но таким образом вы можете отправить 1 письмо на 10 человек –