obtenerDatosEnvioMail(); if (isset($datosConfig['contrasenia_emisor'])) { $datosConfig['contrasenia_emisor'] = decryptData($datosConfig['contrasenia_emisor']); } if ((int) $datosConfig['mail_automatico'] === 1) { $mail = new PHPMailer(true); try { // CONFIG SMTP $mail->isSMTP(); $mail->Host = 'smtp.gmail.com'; $mail->SMTPAuth = true; $mail->Username = $datosConfig['email_emisor']; $mail->Password = $datosConfig['contrasenia_emisor']; $mail->SMTPSecure = 'tls'; $mail->Port = 587; // CODIFICACIÓN (evita problemas con tildes) $mail->CharSet = 'UTF-8'; // REMITENTE $mail->setFrom($datosConfig['email_emisor'], 'ByteCenter'); // DESTINATARIO if (empty($cliente['email'])) { return false; } $mail->addAddress($cliente['email'], $cliente['nombre'] . ' ' . $cliente['apellido']); // DEFINIMOS ARRAY HTML DE INSUMOS UTILIZADOS $productos = ""; if (!empty($insumos)) { foreach ($insumos as $i) { $productos .= "
Cliente: ". $cliente['nombre'] . ' ' . $cliente['apellido'] ."
Equipo: ". $servicio['equipo'] ."
Problema: ". $servicio['problema']. "
". $servicio['detalle_realizado']. "
| Modelo | Precio Unitario | Cantidad | Subtotal |
|---|
Mano de obra: ". "$" . number_format($servicio['mano_obra'], 2, ',', '.'). "
Total: ". "$" . number_format($servicio['total'], 2, ',', '.'). "
Esperamos su confirmación para la realización del servicio, en caso de cancelarlo podrá retirar el equipo en nuestro local ubicado en {$datosConfig['direccion']}, {$datosConfig['ciudad']} y abonar el monto por revisión y desarme: $ {$datosConfig['cargo_cancelacion_servicio']}.
Nuestros horarios de atención son: {$datosConfig['hora_apertura_maniana']} - {$datosConfig['hora_cierre_maniana']} y {$datosConfig['hora_apertura_tarde']} - {$datosConfig['hora_cierre_tarde']}.
Por cualquier duda o consulta: {$datosConfig['telefono']} - {$datosConfig['email']}.
Gracias por confiar en nuestro servicio técnico.
ByteCenter
"; // Versión texto plano (por compatibilidad) $mail->AltBody = "Servicio finalizado - Total: $ {$servicio['total']}"; $mail->send(); return true; } catch (Exception $e) { // Log interno error_log($e->getMessage()); return false; } } else { return true; } }