#include #include #include "services/accountservice.h" #include "services/imap/imapsynchronizer.h" #include "core/models/account.h" #include "db/databasemanager.h" int main(int argc, char *argv[]) { QCoreApplication app(argc, argv); // Initialize database DatabaseManager::instance().initializeDatabase(); AccountService accountService; Account acc; acc.setEmail("test@example.com"); acc.setDisplayName("Test User"); acc.setType(AccountType::IMAP); Account::ConnectionSettings settings; settings.type = "imap"; settings.incomingHost = "imap.example.com"; // non-existent settings.incomingPort = 993; settings.incomingSsl = true; settings.username = "test@example.com"; settings.password = "password"; settings.outgoingHost = "smtp.example.com"; settings.outgoingPort = 465; settings.outgoingSsl = true; settings.authMethod = "plain"; acc.setConnectionSettings(settings); qDebug() << "Adding test account..."; accountService.addAccount(acc); qDebug() << "Accounts after add:" << accountService.getAllAccounts().size(); // Trigger folder sync manually QString accountIdStr = QString::number(acc.id()); Synchronizer *sync = SynchronizerProvider::instance().getSynchronizer(accountIdStr); if (!sync) { sync = SynchronizerProvider::instance().createSynchronizer(accountIdStr, "imap"); } if (sync) { sync->initialize(acc); qDebug() << "Getting folders..."; QVector folders = sync->getFolders(); qDebug() << "Folders found:" << folders.size(); for (const Folder &f : folders) { qDebug() << " -" << f.name(); } // Try to fetch from inbox (first folder) if (!folders.isEmpty()) { qDebug() << "Fetching mail items for first folder..."; QVector items = sync->fetchMailItems(QString::number(folders.first().id()), 0); qDebug() << "Items fetched:" << items.size(); } } else { qDebug() << "Failed to get/create synchronizer"; } // Clean up: remove account accountService.removeAccount(acc.id()); qDebug() << "Account removed."; return 0; }