PHP Mail BCC для нескольких получателей

Я пытаюсь отправить электронное письмо нескольким пользователям через BCC, получая идентификаторы электронной почты из базы данных, для этого я написал ниже код

$q = $db->query("SELECT group_concat(concat(''',user_email,''')) FROM topic_subscribe");
$recipients = array($q['user_email']);
$headers .= 'BCC: '. implode(",", $recipients) . "\r\n";
$a = mail( null, $subject, $message, $headers );

Но он не отправляет электронную почту. Если я возьму $recipients вручную, как показано ниже, он работает

$recipients = array("[email protected]","[email protected]",);

может извлекать идентификаторы электронной почты из базы данных, это проблема, но не может понять проблему. любая помощь, пожалуйста

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
0
15
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Не следует объединять кавычки с user_email. И вам нужно дать псевдоним выражению group_concat(), чтобы вы могли ссылаться на него по имени в возвращаемом значении.

Затем используйте explode(), чтобы разделить значение запятыми. Но если вы просто собираетесь вызвать implode(), вы можете просто использовать значение строки как есть.

$q = $db->query("SELECT group_concat(user_email) AS emails FROM topic_subscribe");
$headers .= 'BCC: '. implode(",", $q['emails']) . "\r\n";
$a = mail( null, $subject, $message, $headers );

Пытался, но не завершил процесс

roy 30.03.2021 09:16

Что показывает var_dump($q['emails'])?

Barmar 30.03.2021 09:22

показывает вывод 'null, если используется запрос, но при использовании' fetchRow 'вместо' query 'выводится' string (74) "mymailid1 @ gmail.com, mymailid2 @ gmail.com, mymailid3 @ gmail.com‌, mymail @ gmail.com "'

roy 30.03.2021 09:27
$db->query() не является стандартным методом PHP. Похоже, он возвращает все строки, а не только одну строку, как вы ее используете. Значит вам нужен $q[0]['emails']
Barmar 30.03.2021 09:28

он работает с использованием этого $ q = $ db-> fetchRow ("ВЫБРАТЬ group_concat (user_email) AS emails FROM topic_subscribe"); '$ заголовки. =' BCC: '. $ q ['электронные письма']. "\ r \ n"; ' Благодарность

roy 30.03.2021 09:30

Другие вопросы по теме