nie działa mi kolejkowanie podczas wysyłania wiadomości email.
Oto mój kod używający funkcji phpBB3:
Kod: Zaznacz cały
include_once($phpbb_root_path . 'includes/functions_messenger.' . $phpEx);
$messenger = new messenger();
$max_emails = 80;
$i = 0;
$j = 0;
$email_list = array();
$email_date = strftime('%A, %e %B %Y');
$email_subject = stripslashes($data_news['news_subject']);
// Get emails list
$sql = 'SELECT *
FROM ' . NEWSLETTER_SUBS_STABLE . '
ORDER BY newsletter_sub_id DESC';
$result = $db->sql_query($sql);
// Build emails array
while ($row = $db->sql_fetchrow($result))
{
if ($i == $max_emails)
{
$j++;
$i = 0;
}
$email_list[$j][$i]['email'] = $row['newsletter_sub_mail'];
$i++;
}
// Sending emails
for ($i = 0, $size = sizeof($email_list); $i < $size; $i++)
{
for ($j = 0, $list_size = sizeof($email_list[$i]); $j < $list_size; $j++)
{
$email_row = $email_list[$i][$j];
$messenger->{((sizeof($email_list[$i]) == 1) ? 'to' : 'bcc')}($email_row['email'], $email_row['email']);
}
$messenger->template('newsletter', 'pl');
$messenger->headers('X-AntiAbuse: Board servername - ' . $config['server_name']);
$messenger->headers('X-AntiAbuse: User_id - ' . $user->data['user_id']);
$messenger->headers('X-AntiAbuse: Username - ' . $user->data['username']);
$messenger->headers('X-AntiAbuse: User IP - ' . $user->ip);
$messenger->assign_vars(array(
'SUBJECT' => $email_subject,
'NEWSLETTER' => $data_news['news_news'],
'DATE' => $email_date,
));
$messenger->send();
}
$messenger->save_queue();
unset($email_list);
Przerwa kolejki (ustawione z poziomu bazy): 1800 (sekund).
Wysyłam około 600 emaili.
Kiedy uruchamiam skrypt, w katalogu cache zgodnie z założeniami pojawia się plik queue od kolejki, ale wiadomości są wysyłane w ciągu 1-2 minut no i plik zaraz znika...
Oczywiście w efekcie otrzymuję taką oto piękną wiadomość:
Coś ja zrobiłem źle, czy to jednak wina skryptu?Domain mydomain has exceeded the max emails per hour (500) allowed. Message discarded.