added logic for updating user profile plus other bug fixes
This commit is contained in:
58
app/Http/Controllers/EmailController.php
Normal file
58
app/Http/Controllers/EmailController.php
Normal file
@@ -0,0 +1,58 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Webklex\PHPIMAP\ClientManager;
|
||||
use Webklex\PHPIMAP\Exceptions\ConnectionFailedException;
|
||||
use App\Libs\ImapService;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
|
||||
class EmailController extends Controller
|
||||
{
|
||||
|
||||
public function indexInbox(ImapService $imap): JsonResponse{
|
||||
try {
|
||||
$emails = $imap->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);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user