diff --git a/contact-handler.php b/contact-handler.php new file mode 100644 index 0000000..6d176b6 --- /dev/null +++ b/contact-handler.php @@ -0,0 +1,165 @@ +', $errors); + header('Location: menu/contact.html?error=' . urlencode($error_message)); + exit; +} + +// Maparea valorilor pentru subiect +$subiect_map = [ + 'informatii-roa' => 'Informații despre ROA', + 'suport-tehnic' => 'Suport tehnic', + 'implementare' => 'Implementare soluție', + 'demo' => 'Solicitare demo', + 'altele' => 'Altele' +]; + +$subiect_text = $subiect_map[$subiect] ?? $subiect; + +// Construirea mesajului email +$email_subject = 'Contact formular site - ' . $subiect_text; +$email_body = " +Mesaj nou de pe site-ul Romfast.ro + +Detalii contact: +- Nume: {$nume} +- Email: {$email} +- Telefon: " . (!empty($telefon) ? $telefon : 'Nu a fost specificat') . " +- Subiect: {$subiect_text} + +Mesaj: +{$mesaj} + +--- +Trimis de pe formularul de contact al site-ului Romfast.ro +IP: {$_SERVER['REMOTE_ADDR']} +Data: " . date('d.m.Y H:i:s') . " +"; + +// Headers pentru email +$headers = [ + 'From' => $from_email, + 'Reply-To' => $email, + 'X-Mailer' => 'PHP/' . phpversion(), + 'MIME-Version' => '1.0', + 'Content-Type' => 'text/plain; charset=UTF-8' +]; + +// Funcție pentru trimiterea email-ului prin SMTP +function sendEmailSMTP($to, $subject, $body, $headers, $smtp_config) { + // Încercăm să folosim PHPMailer dacă este disponibil + if (class_exists('PHPMailer\PHPMailer\PHPMailer')) { + require_once 'vendor/autoload.php'; + + $mail = new PHPMailer\PHPMailer\PHPMailer(true); + + try { + // Configurare server SMTP + $mail->isSMTP(); + $mail->Host = $smtp_config['server']; + $mail->SMTPAuth = true; + $mail->Username = $smtp_config['username']; + $mail->Password = $smtp_config['password']; + $mail->SMTPSecure = PHPMailer\PHPMailer\PHPMailer::ENCRYPTION_STARTTLS; + $mail->Port = $smtp_config['port']; + $mail->CharSet = 'UTF-8'; + + // Setări destinatar și expeditor + $mail->setFrom($smtp_config['from'], 'Formular Contact Romfast'); + $mail->addAddress($to); + $mail->addReplyTo($headers['Reply-To']); + + // Conținut + $mail->isHTML(false); + $mail->Subject = $subject; + $mail->Body = $body; + + $mail->send(); + return true; + } catch (Exception $e) { + error_log("Eroare PHPMailer: " . $mail->ErrorInfo); + return false; + } + } else { + // Fallback la funcția mail() cu configurare SMTP prin ini_set + ini_set('SMTP', $smtp_config['server']); + ini_set('smtp_port', $smtp_config['port']); + ini_set('sendmail_from', $smtp_config['from']); + + $header_string = ''; + foreach ($headers as $key => $value) { + $header_string .= $key . ': ' . $value . "\r\n"; + } + + return mail($to, $subject, $body, $header_string); + } +} + +// Configurare pentru SMTP +$smtp_config = [ + 'server' => $smtp_server, + 'port' => $smtp_port, + 'username' => $smtp_username, + 'password' => $smtp_password, + 'from' => $from_email +]; + +// Încearcă să trimită emailul +$email_sent = sendEmailSMTP($to_email, $email_subject, $email_body, $headers, $smtp_config); + +if ($email_sent) { + // Succes - redirecționează cu mesaj de confirmare + header('Location: menu/contact.html?success=1'); +} else { + // Eroare la trimiterea emailului + error_log("Eroare la trimiterea emailului de contact de la: {$email}"); + header('Location: menu/contact.html?error=' . urlencode('A apărut o eroare la trimiterea mesajului. Vă rugăm să încercați din nou sau să ne contactați direct.')); +} + +exit; +?> \ No newline at end of file diff --git a/menu/contact.html b/menu/contact.html index 7ec57b5..c40b2dc 100644 --- a/menu/contact.html +++ b/menu/contact.html @@ -136,15 +136,18 @@