getLatestEmails(10); return response()->json($emails); // Or for view: return view('emails.index', compact('emails')); } catch (\Exception $e) { return response()->json(['error' => $e->getMessage()], 500); } } public function index() { try { // Initialize IMAP client $client = app(ClientManager::class)->account('default'); $client->connect(); // Get INBOX folder $folder = $client->getFolder('INBOX'); // Fetch last 10 emails (newest first) $messages = $folder->messages()->unseen()->limit(10)->get(); // Prepare data for view $emails = $messages->map(function ($message) { return [ 'subject' => $message->getSubject() ?? '(No Subject)', 'sender' => $message->getFrom()[0]->mail ?? 'Unknown', 'email_date' => $message->getDate()->toDateTimeString(), 'email_body' => substr(strip_tags($message->getTextBody()), 0, 200) . '...', ]; }); // Disconnect $client->disconnect(); dd($emails); // Return view or JSON // return view('emails.index', compact('emails')); // Or for API: return response()->json($emails); } catch (ConnectionFailedException $e) { return response()->json(['error' => 'Failed to connect: ' . $e->getMessage()], 500); } catch (\Exception $e) { return response()->json(['error' => 'Error: ' . $e->getMessage()], 500); } } }