fino a eventi e report prima del tipo di eventi
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user