Ошибка в результате отправки письма PHPMailer?

Помогите разобраться с обработкой отправки письма с помощью PHPMailer я не силен в PHP только учусь есть такой скрипт
function sendMail($options) {
    // Создаем письмо
    $mail = new PHPMailer();
    $mail->isSMTP();                   // Отправка через SMTP
    $mail->Host   = 'smtp.yandex.ru';  // Адрес SMTP сервера
    $mail->SMTPAuth   = true;          // Enable SMTP authentication
    $mail->Username   = '*********';// ваше имя пользователя (без домена и @)
    $mail->Password   = '**********';    // ваш пароль
    $mail->SMTPSecure = 'ssl';         // шифрование ssl
    $mail->Port   = 465;               // порт подключения
    $mail->SMTPDebug = 2;
    $mail->CharSet = "UTF-8"; // кодировка заголовков

    $mail->setFrom('***********@yandex.ru', '***********'); // от кого
    $mail->addAddress($options['fromEmail']); // кому
    $mail->addAddress($options['toEmail']);   // кому
    $mail->addReplyTo($options['fromEmail'],$options['fromname']); // адрес и имя для ответа
    
    $mail->isHTML(true);
    $mail->Subject = $options['subject'];  // тема письма
    $mail->msgHTML($options['body']);
    
    // прикрепляем файл с реквизитами если доставка СДЕК
    if ($options['dostavka'] == 'СДЕК'){$mail->addAttachment('../cover/Реквизиты.pdf');};

    // Отправляем
    return  $mail->send();
}

// Отправка письма с заказом
function sendEmailOrder($data) {
    $orderId = $data['order_id'];
    $data['title'] = 'Заказ с сайта ' . SITE;
    $cart = json_decode($data['cart'], true);
    if ($data['dostavka']=='Почта России') {
        ob_start();
        include('tpl/email_client.php');
        $bodyClient = ob_get_contents();
        ob_end_clean();
        ob_start();
        include('tpl/email_order.php');
        $body = ob_get_contents();
        ob_end_clean();
    };
    if ($data['dostavka']=='СДЕК') {
        ob_start();
        include('tpl/email_order.php');
        $body = ob_get_contents();
        $bodyClient = $body;
        ob_end_clean();
    };
    $sendClient = sendMail(array(
        'subject' => 'Ваш заказ с сайта ' . SITE,
        'fromName' => EMAIL_FROM_NAME,
        'fromEmail' => EMAIL_ADMIN,
        'toEmail' => $data['email'],
        'body' => $bodyClient,
        'dostavka' => $data['dostavka']
    ));
    if (!$sendClient) {
        throw new Exception('Ошибка отправки почты на email клиента');
    }
    $sendAdmin = sendMail(array(
        'subject' => 'Новый заказ с сайта ' . SITE,
        'fromName' => EMAIL_FROM_NAME,
        'fromEmail' => EMAIL_ADMIN,
        'toEmail' => EMAIL_ADMIN,
        'body' => $body
    ));
    if (!$sendAdmin) {
        throw new Exception('Ошибка отправки почты на email админа');
    }
}

try {
   // Отправляем письмо
    sendEmailOrder($data);

    //Возвращаем клиенту успешный ответ
    echo json_encode(array(
        'code' => 'success'
    ));
}

catch (Exception $e) {
    // Возвращаем клиенту ответ с ошибкой
    echo json_encode(array(
        'code' => 'error',
        'message' => $e->getMessage()
    ));
}


Код срабатывает но приходит ошибка не могу разобраться, что не так?
  • Вопрос задан
  • 146 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы