Не отправляются письма. 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]'; /* кстати, тут точку с запятой вы пропустили,
код сразу нерабочий.*/