File: /var/www/html/spion/app/Http/Controllers/Front/ContactController.php
<?php
namespace App\Http\Controllers\Front;
use App\Http\Controllers\Controller;
use App\Models\Admin;
use App\Models\Setting;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Mail;
class ContactController extends Controller
{
public function index()
{
return view('front.pages.contact');
}
public function contactFormSubmit(Request $request)
{
// Validate the form data
$validated = $request->validate([
'name' => 'required|string|max:255',
'email' => 'required|email',
'subject' => 'nullable|string|max:255',
'message' => 'required|string|max:5000',
]);
// $adminEmail = '[email protected]';
$adminEmail = Setting::where('key', 'website_email')->value('value');
// dd($adminEmail);
if (!$adminEmail) {
return back()->withErrors(['error' => 'Admin email is not configured.']);
}
if (!$adminEmail) {
return back()->withErrors(['error' => 'Admin email is not configured.']);
}
// Send the email to the admin
try {
Mail::send('mail.contact-mail', [
'name' => $validated['name'],
'email' => $validated['email'],
'subject' => $validated['subject'],
'messageContent' => $validated['message'],
], function ($message) use ($adminEmail, $validated) {
// dd($message);
$message->to($adminEmail)
->subject($validated['subject'] ?? 'Contact Form Submission');
});
return back()->with('success', 'Your message has been sent successfully!');
} catch (\Exception $e) {
return back()->withErrors(['error' => 'Failed to send message. Please try again later.']);
}
}
}