Как отправить почту на все электронные письма в моей таблице базы данных?

1

Я пробовал с этим кодом отправлять электронные письма людям с одинаковой категорией.

if ($action = 'message_til_flere') {
        $vagt_ansat_email = $_POST['vagt_ansat_email'];

        $select_alle_mails = " SELECT vagt_ansat_email FROM vagt_ansat_med_kategori WHERE vagt_kategori_id = $id ";

        $til_vagter = array();
        while ($row = mysql_fetch_array($select_alle_mails)) {
            $til_vagter[] = $row['vagt_ansat_email'];

        $to = $til_vagter;

        $subject = "E-mail subject";
        $headers = 'From: mywebpage' . "\r\n";
        $headers .= 'Reply-To: mywebpage' . "\r\n";
        $headers .= 'BCC: ' . implode(', ', $til_vagter) . "\r\n";
    }
         mail($to, $subject, $headers);
  • 2
    Вы не сказали нам, что происходит? и " это не работает " не является приемлемым ответом
  • 0
    array (3) {["page"] => string (12) "kontrolpanel" ["action"] => string (17) "message_til_flere" ["vagt_ansat_email"] => string (0) ""} Предупреждение: mysql_fetch_array () ожидает, что параметр 1 будет ресурсом, строка указана в /home/alex.wi1/public_html/security_report/admin/sites/kontrolpanel.php в строке 268
Показать ещё 1 комментарий
Теги:
email

3 ответа

1

$ to не может быть массивом. Это должна быть строка. Несколько почтовых адресов должны быть разделены запятыми. Для этого вы можете использовать функцию php implode

$to = implode(',', $til_vagter);

Пример:

if ($action = 'message_til_flere') {
    $vagt_ansat_email = $_POST['vagt_ansat_email']; // never used in this part

    $select_alle_mails = " SELECT vagt_ansat_email FROM vagt_ansat_med_kategori WHERE vagt_kategori_id = $id ";

    $til_vagter = array();
    $result = mysql_query($select_alle_mails); // a connection to db is required
    while ($row = mysql_fetch_array($result)) { // fetch results as array
        $til_vagter[] = $row['vagt_ansat_email'];
    }

    $to = "[email protected]";

    $subject = "E-mail subject";
    $headers = 'From: mywebpage' . "\r\n";
    $headers .= 'Reply-To: mywebpage' . "\r\n";
    $headers .= 'BCC: ' . implode(', ', $til_vagter) . "\r\n";
    $message = "Test Body";

    mail($to, $subject, $message, $headers); // a message is required
}
  • 0
    он также делает это в BCC, поэтому должен отбросить это
  • 0
    Пользователь знал друг от друга? Ну, а если нет, то это лучшее решение для отправки в BCC и использования только почтового адреса заполнителя для $ to [email protected]
Показать ещё 10 комментариев
1

Вы не выполнили запрос перед извлечением, и вы передали строку запроса в mysql_fetch_array() что неверно. это результат запроса, который вы хотите получить:

    $select_alle_mails = "SELECT vagt_ansat_email 
                          FROM vagt_ansat_med_kategori 
                          WHERE vagt_kategori_id = $id ";

    $result = mysql_query($select_alle_mails);
    $til_vagter = array();
    while ($row = mysql_fetch_array($result)) {...}
  • mysql_ устарел
  • использовать подготовленное выражение
  • Я не уверен, что у mail() есть ограничение на получателя, но похоже, что вы должны отправить их в пакет
  • См. @vonHergen и @dagon для @dagon других @dagon
  • 1
    почта, не имеет ограничений, почтовые серверы делают, и каждый почтовый сервер отличается (это боль) Я думаю, заставить его работать, а затем заставить его изменить db api :-)
  • 0
    это то, что я думал, ОП лучше отправлять их партиями
Показать ещё 16 комментариев
1

Я лично отправил бы одну почту за один раз в цикле:

if ($action = 'message_til_flere') {
 //   $vagt_ansat_email = $_POST['vagt_ansat_email']; //not used?

    $select_alle_mails = " SELECT vagt_ansat_email FROM vagt_ansat_med_kategori WHERE vagt_kategori_id = $id ";

    //RUN QUERY
$sel_result = mysql_query($select_alle_mails); 

    while ($row = mysql_fetch_array($sel_result)) {


    $subject = "E-mail subject";
    $headers = 'From: mywebpage' . "\r\n";
    $headers .= 'Reply-To: mywebpage' . "\r\n";
     $message="dear bob, having fun?";
     mail($row['vagt_ansat_email'], $subject, $message, $headers);
 }
  • 0
    как мне снова выкинуть картинку?
  • 0
    if ($ action = 'message_til_flere') {// $ vagt_ansat_email = $ _POST ['vagt_ansat_email']; //не используется? $ select_alle_mails = "ВЫБЕРИТЕ vagt_ansat_email ОТ vagt_ansat_med_kategori ГДЕ vagt_kategori_id = $ id"; $ sel_result = mysql_query ($ select_alle_mails); while ($ row = mysql_fetch_array ($ select_alle_mails)) {$ subject = "Тема электронной почты"; $ headers = 'From: mywebpage'. "\ Г \ п"; $ headers. = 'Reply-To: mywebpage'. "\ Г \ п"; $ message = "Дорогой Боб, веселишься?"; mail ($ row ['vagt_ansat_email'], $ subject, $ message, $ headers); }}
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню