fino a eventi e report prima del tipo di eventi

This commit is contained in:
2026-05-26 11:47:36 +02:00
parent 0bed099d05
commit f088dba4bf
47 changed files with 1733 additions and 6899 deletions
+31 -1
View File
@@ -342,8 +342,11 @@ class EmailController extends Controller
public function syncEmails()
{
\Illuminate\Support\Facades\Log::info('Email sync started');
$settings = EmailSetting::getActive();
if (!$settings) {
\Illuminate\Support\Facades\Log::warning('Email sync aborted: no active email configuration');
throw new \Exception('Nessuna configurazione email attiva');
}
@@ -351,6 +354,8 @@ class EmailController extends Controller
$mailbox = $this->connectImap($settings);
\Illuminate\Support\Facades\Log::info('IMAP connection established', ['host' => $settings->imap_host]);
$folderMappings = [
'INBOX' => 'inbox',
'Sent' => 'sent',
@@ -362,11 +367,19 @@ class EmailController extends Controller
'[Gmail]/Trash' => 'trash',
];
$totalProcessed = 0;
$totalNew = 0;
foreach (array_keys($folderMappings) as $imapFolderName) {
try {
$folder = $mailbox->folders()->find($imapFolderName);
if (!$folder) continue;
if (!$folder) {
\Illuminate\Support\Facades\Log::debug('IMAP folder not found', ['folder' => $imapFolderName]);
continue;
}
\Illuminate\Support\Facades\Log::info('Processing IMAP folder', ['folder' => $imapFolderName]);
$messages = $folder->messages()
->withHeaders()
->withBody()
@@ -374,14 +387,31 @@ class EmailController extends Controller
->limit(100)
->get();
\Illuminate\Support\Facades\Log::info('Messages fetched from folder', ['folder' => $imapFolderName, 'count' => count($messages)]);
foreach ($messages as $imapMessage) {
$totalProcessed++;
$messageId = $imapMessage->messageId() ?? uniqid('msg_');
$existing = EmailMessage::where('message_id', $messageId)->first();
if ($existing) {
continue;
}
$this->processImapMessage($imapMessage, $imapFolderName);
$totalNew++;
}
} catch (\Exception $e) {
\Illuminate\Support\Facades\Log::error('Error processing IMAP folder', ['folder' => $imapFolderName, 'error' => $e->getMessage()]);
continue;
}
}
\Illuminate\Support\Facades\Log::info('Email sync completed', [
'processed' => $totalProcessed,
'new' => $totalNew,
]);
return true;
}