В идеале вам следует использовать внешнюю часть почтового программного обеспечения, чтобы вы могли отправлять электронную почту в список, и она будет обрабатывать отдельных получателей; таким образом, вы можете избежать зацикливания почтовых вызовов (и запросов на отправку в очередь), не раскрывая свой список рассылки.
Из представленных вами вариантов лучше всего отправлять электронную почту с помощью цикла с отдельными вызовами функции почты, чтобы не раскрывать получателей.
Наконец, возможно, попробуйте что-то вроде этого:
$recipients = array('user@example.com','admin@example.org',); // mail list
$bcc = join(',', $recipients);
mail(
'"Undisclosed Recipients" <no-reply@example.com>',
$subject,
$message,
"BCC: {$bcc}"
);
Однако, если вы используете это, убедитесь, что используемый вами клиент sendmail удаляет заголовок BCC перед отправкой.