1515use OCA \Mail \Db \MessageMapper ;
1616use OCA \Mail \Exception \ServiceException ;
1717use OCA \Mail \Exception \SmimeDecryptException ;
18- use OCA \Mail \IMAP \IMAPClientFactory ;
1918use OCA \Mail \Service \AccountService ;
2019use OCA \Mail \Service \ContextChat \TaskService ;
2120use OCA \Mail \Service \MailManager ;
@@ -36,7 +35,6 @@ public function __construct(
3635 private AccountService $ accountService ,
3736 private MailManager $ mailManager ,
3837 private MessageMapper $ messageMapper ,
39- private IMAPClientFactory $ clientFactory ,
4038 private ContextChatProvider $ contextChatProvider ,
4139 private IContentManager $ contentManager ,
4240 private LoggerInterface $ logger ,
@@ -109,53 +107,41 @@ protected function run($argument): void {
109107 }
110108
111109
112- $ client = $ this ->clientFactory ->getClient ($ account );
113110 $ items = [];
114111
115- try {
116- $ startTime = $ this ->time ->getTime ();
117- foreach ($ messages as $ message ) {
118- if ($ this ->time ->getTime () - $ startTime > ContextChatProvider::CONTEXT_CHAT_JOB_INTERVAL ) {
119- break ;
120- }
121- try {
122- $ imapMessage = $ this ->mailManager ->getImapMessage ($ client , $ account , $ mailbox , $ message ->getUid (), true );
123- } catch (ServiceException $ e ) {
124- // couldn't load message, let's skip it. Retrying would be too costly
125- continue ;
126- } catch (SmimeDecryptException $ e ) {
127- // encryption problem, skip this message
128- continue ;
129- }
130-
131-
132- // Skip encrypted messages
133- if ($ imapMessage ->isEncrypted ()) {
134- continue ;
135- }
136-
137-
138- $ fullMessage = $ imapMessage ->getFullMessage ($ imapMessage ->getUid (), true );
139-
140-
141- $ items [] = new ContentItem (
142- "{$ mailbox ->getId ()}: {$ message ->getId ()}" ,
143- $ this ->contextChatProvider ->getId (),
144- $ imapMessage ->getSubject (),
145- $ fullMessage ['body ' ] ?? '' ,
146- 'E-Mail ' ,
147- $ imapMessage ->getSentDate (),
148- [$ account ->getUserId ()],
149- );
112+ $ startTime = $ this ->time ->getTime ();
113+ foreach ($ messages as $ message ) {
114+ if ($ this ->time ->getTime () - $ startTime > ContextChatProvider::CONTEXT_CHAT_JOB_INTERVAL ) {
115+ break ;
150116 }
151- } catch (\Throwable $ e ) {
152- $ this ->logger ->warning ('Exception occurred when trying to fetch messages for context chat ' , ['exception ' => $ e ]);
153- } finally {
154117 try {
155- $ client ->close ();
156- } catch (\Horde_Imap_Client_Exception $ e ) {
157- $ this ->logger ->debug ('Failed to close IMAP client ' , ['exception ' => $ e ]);
118+ $ imapMessage = $ this ->mailManager ->getImapMessage ($ account , $ mailbox , $ message , true );
119+ } catch (ServiceException $ e ) {
120+ // couldn't load message, let's skip it. Retrying would be too costly
121+ continue ;
122+ } catch (SmimeDecryptException $ e ) {
123+ // encryption problem, skip this message
124+ continue ;
125+ }
126+
127+
128+ // Skip encrypted messages
129+ if ($ imapMessage ->isEncrypted ()) {
130+ continue ;
158131 }
132+
133+
134+ $ fullMessage = $ imapMessage ->getFullMessage ($ imapMessage ->getUid (), true );
135+
136+ $ items [] = new ContentItem (
137+ "{$ mailbox ->getId ()}: {$ message ->getId ()}" ,
138+ $ this ->contextChatProvider ->getId (),
139+ $ imapMessage ->getSubject (),
140+ $ fullMessage ['body ' ] ?? '' ,
141+ 'E-Mail ' ,
142+ $ imapMessage ->getSentDate (),
143+ [$ account ->getUserId ()],
144+ );
159145 }
160146
161147 if (count ($ items ) > 0 ) {
0 commit comments