Не отправляются письма. PHPmailer

Решил перейти на отправку писем через phpmailer, до этого использовал простой php-скрипт, а адрес для доставки явно указывал value инпута. Не могу понять, почему теперь не отправляются. В скрипте ниже эмейл изменен.

<?php

use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;

require 'phpmailer/src/Exception.php';
require 'phpmailer/src/PHPMailer.php';
require 'phpmailer/src/SMTP.php';

$admin_email = array();
foreach ( $_POST["admin_email"] as $key => $value ) {
    array_push($admin_email, $value);
}

$admin_email = '[email protected]'

$form_subject = trim($_POST["form_subject"]);

$mail = new PHPMailer;
$mail->CharSet = 'UTF-8';
$mail->setLanguage('ru', 'phpmailer/language/');


$c = true;
$message = '';
foreach ( $_POST as $key => $value ) {
    if ( $value != ""  && $key != "admin_email" && $key != "form_subject" ) {
        if (is_array($value)) {
            $val_text = '';
            foreach ($value as $val) {
                if ($val && $val != '') {
                    $val_text .= ($val_text==''?'':', ').$val;
                }
            }
            $value = $val_text;
        }
        $message .= "
        " . ( ($c = !$c) ? '<tr>':'<tr>' ) . "
        <td style='padding: 10px; width: auto;'><b>$key:</b></td>
        <td style='padding: 10px;width: 100%;'>$value</td>
        </tr>
        ";
    }
}
$message = "<table style='width: 50%;'>$message</table>";


// От кого
$mail->setFrom('adm@' . $_SERVER['HTTP_HOST'], 'Your best site');
 
// Кому
foreach ( $admin_email as $key => $value ) {
    $mail->addAddress($value);
}
// Тема письма
$mail->Subject = $form_subject;
 
// Тело письма
$body = $message;
// $mail->isHTML(true);  это если прям верстка
$mail->msgHTML($body);

// Приложения
if ($_FILES){
    foreach ( $_FILES['file']['tmp_name'] as $key => $value ) {
        $mail->addAttachment($value, $_FILES['file']['name'][$key]);
    }
}
$mail->send();
?>


Ответы (1 шт):

Автор решения: DrMcSheen

В комментарии код не вставляется, поэтому пишу в ответе. У вас $admin_email приходит как массив в POST запросе. Если хотите вставить только один адрес для проверки, тогда делайте так:

$admin_email = array();
//foreach ( $_POST["admin_email"] as $key => $value ) {
//    array_push($admin_email, $value);
//}

$admin_email[] = '[email protected]'; /* кстати, тут точку с запятой вы пропустили, 
                                          код сразу нерабочий.*/
→ Ссылка