%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /var/www/projetos/davidrrsoares.com.br/php/
Upload File :
Create Path :
Current File : /var/www/projetos/davidrrsoares.com.br/php/sendmail.php

<?php
// Headers CORS
header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Methods: GET, POST, OPTIONS");
header("Access-Control-Allow-Headers: Content-Type, Authorization");
header("Content-Type: application/json; charset=utf-8");

// Handle preflight OPTIONS request
if ($_SERVER['REQUEST_METHOD'] === 'OPTIONS') {
    http_response_code(200);
    exit();
}

// Requires do PHPMailer (linhas 12-16)
// Assumindo que sendmail.php está em /var/www/projetos/davidrrsoares.com.br/php/
// e a biblioteca PHPMailer está em /var/www/projetos/davidrrsoares.com.br/libs/phpmailer/
// Ajuste os caminhos se a estrutura de pastas for diferente.
require '../libs/phpmailer/src/Exception.php';
require '../libs/phpmailer/src/PHPMailer.php';
require '../libs/phpmailer/src/SMTP.php';

// --- CORREÇÃO 1: Adicionar o uso correto do namespace PHPMailer ---
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;

// Variáveis SMTP (linhas 18-25)
$smtpHost = 'smtplw.com.br';
$smtpPort = 587; // Ou 587 para TLS
$smtpUsername = 'nures';
$smtpFrom = 'noreply@ongrace.com';
$smtpTo = 'gabinetedavidsoares@gmail.com';
$smtpPassword = 'ofRTPqWe9689'; // Substitua pela sua senha real do SMTP
$smtpSecure = PHPMailer::ENCRYPTION_STARTTLS; // Use SMTPS para porta 465, ou STARTTLS para porta 587

// --- CORREÇÃO 2: Definir a variável $email_conteudo e $email_assunto antes de serem usadas ---
$email_conteudo = ''; // Inicializa a variável para evitar o warning de "Undefined variable"
$email_assunto = ''; // Inicializa também o assunto

// Validação $_POST['nome'] (linhas 27-50)
if (isset($_POST['nome']) && !empty($_POST['nome'])) {
    $nome = utf8_encode(filter_var($_POST['nome'], FILTER_SANITIZE_STRING));
    $email = utf8_encode(filter_var($_POST['email'], FILTER_SANITIZE_EMAIL));
    $assunto = 'Fale comigo cadastro';//utf8_encode(filter_var($_POST['assunto'], FILTER_SANITIZE_STRING));
    $mensagem = utf8_encode(filter_var($_POST['mensagem'], FILTER_SANITIZE_STRING));
    // Montar $email_conteudo ANTES de ser usado
    $email_conteudo = "
        <html>
        <head>
            <title>Contato via Site</title>
        </head>
        <body>
            <h1>Nova Mensagem de Contato</h1>
            <p><strong>Nome:</strong> {$nome}</p>
            <p><strong>Email:</strong> {$email}</p>
            <p><strong>Assunto:</strong> {$assunto}</p>
            <p><strong>Mensagem:</strong> {$mensagem}</p>
        </body>
        </html>
    ";
    $email_assunto = "Contato via Site: " . $assunto;

}
// Validação $_POST['whatsapp'] (linhas 52-65)
elseif (isset($_POST['whatsapp']) && !empty($_POST['whatsapp'])) {
    $nome = utf8_encode(filter_var($_POST['nome'], FILTER_SANITIZE_STRING));
    $whatsapp = utf8_encode(filter_var($_POST['whatsapp'], FILTER_SANITIZE_STRING));
    $mensagem = utf8_encode(filter_var($_POST['mensagem'], FILTER_SANITIZE_STRING));

    // Montar $email_conteudo ANTES de ser usado
    $email_conteudo = "
        <html>
        <head>
            <title>Contato via WhatsApp</title>
        </head>
        <body>
            <h1>Nova Mensagem de Contato via WhatsApp</h1>
            <p><strong>Nome:</strong> {$nome}</p>
            <p><strong>WhatsApp:</strong> {$whatsapp}</p>
            <p><strong>Mensagem:</strong> {$mensagem}</p>
        </body>
        </html>
    ";
    $email_assunto = "Contato via WhatsApp: " . $nome;
} else {
    // No valid POST data received
    echo json_encode(['status' => 'error', 'message' => 'Dados inválidos ou incompletos.']);
    exit();
}

// --- CORREÇÃO 3 & 4: Melhorar o tratamento de erros com ErrorInfo do PHPMailer e try-catch ---
$sendMail = new PHPMailer(true); // Passa 'true' para habilitar exceções

try {
    // Configurações do servidor SMTP
    $sendMail->isSMTP();
    $sendMail->Host = $smtpHost;
    $sendMail->SMTPAuth = true;
    $sendMail->Username = $smtpUsername;
    $sendMail->Password = $smtpPassword;
    $sendMail->SMTPSecure = $smtpSecure;
    $sendMail->Port = $smtpPort;
    $sendMail->CharSet = 'UTF-8'; // Garante a codificação correta dos caracteres

    // Destinatários
    $sendMail->setFrom($smtpFrom, 'Contato Site David Soares');
    $sendMail->addAddress($smtpTo); // Envia para você mesmo

    // Conteúdo do email
    $sendMail->isHTML(true);
    $sendMail->Subject = $email_assunto;
    $sendMail->Body = $email_conteudo;
    $sendMail->AltBody = strip_tags($email_conteudo); // Versão em texto puro para clientes de email que não suportam HTML

    // --- CORREÇÃO 3: Mudar $sendMail->Send() para $sendMail->send() (método correto em versões modernas) ---
    $sendMail->send();

    // Resposta JSON (linhas 92-98)
    // --- CORREÇÃO 5: Na resposta de sucesso, retornar a variável $email_conteudo corretamente ---
    echo json_encode(['enviado' => true, 'message' => 'Email enviado com sucesso!', 'email_conteudo' => $email_conteudo]);

} catch (Exception $e) {
    // Tratamento de erro detalhado com ErrorInfo do PHPMailer
    echo json_encode(['enviado' => false, 'message' => 'Erro ao enviar email: ' . $sendMail->ErrorInfo]);
}
?>

Zerion Mini Shell 1.0