@@ -91,7 +91,7 @@ public function login($user, $password) {
91
91
throw new AuthFailedException ($ message );
92
92
}
93
93
94
- return ! $ this ->stream ;
94
+ return $ this ->stream ;
95
95
}
96
96
97
97
/**
@@ -199,8 +199,12 @@ public function examineFolder($folder = 'INBOX') {
199
199
* @return array
200
200
*/
201
201
public function content ($ uids , $ rfc = "RFC822 " ) {
202
- $ content = \imap_fetchbody ($ this ->stream , $ uids [0 ], "" , IMAP ::FT_UID );
203
- return [$ uids [0 ] => $ content ];
202
+ $ result = [];
203
+ $ uids = is_array ($ uids ) ? $ uids : [$ uids ];
204
+ foreach ($ uids as $ uid ) {
205
+ $ result [$ uid ] = \imap_fetchbody ($ this ->stream , $ uid , "" , IMAP ::NIL );
206
+ }
207
+ return $ result ;
204
208
}
205
209
206
210
/**
@@ -211,8 +215,12 @@ public function content($uids, $rfc = "RFC822") {
211
215
* @return array
212
216
*/
213
217
public function headers ($ uids , $ rfc = "RFC822 " ){
214
- $ headers = \imap_fetchheader ($ this ->stream , $ uids [0 ], IMAP ::FT_UID );
215
- return [$ uids [0 ] => $ headers ];
218
+ $ result = [];
219
+ $ uids = is_array ($ uids ) ? $ uids : [$ uids ];
220
+ foreach ($ uids as $ uid ) {
221
+ $ result [$ uid ] = \imap_fetchheader ($ this ->stream , $ uid , IMAP ::NIL );
222
+ }
223
+ return $ result ;
216
224
}
217
225
218
226
/**
@@ -222,17 +230,23 @@ public function headers($uids, $rfc = "RFC822"){
222
230
* @return array
223
231
*/
224
232
public function flags ($ uids ){
225
- $ flags = \imap_fetch_overview ($ this ->stream , $ uids [0 ], IMAP ::FT_UID );
226
233
$ result = [];
227
- if (is_array ($ flags ) && isset ($ flags [0 ])) {
228
- $ flags = (array ) $ flags [0 ];
229
- foreach ($ flags as $ flag => $ value ) {
230
- if ($ value === 1 && in_array ($ flag , ["size " , "uid " , "msgno " , "update " ]) === false ){
231
- $ result [] = "\\" .ucfirst ($ flag );
234
+ $ uids = is_array ($ uids ) ? $ uids : [$ uids ];
235
+ foreach ($ uids as $ uid ) {
236
+ $ raw_flags = \imap_fetch_overview ($ this ->stream , $ uid , IMAP ::NIL );
237
+ $ flags = [];
238
+ if (is_array ($ raw_flags ) && isset ($ raw_flags [0 ])) {
239
+ $ raw_flags = (array ) $ raw_flags [0 ];
240
+ foreach ($ raw_flags as $ flag => $ value ) {
241
+ if ($ value === 1 && in_array ($ flag , ["size " , "uid " , "msgno " , "update " ]) === false ){
242
+ $ flags [] = "\\" .ucfirst ($ flag );
243
+ }
232
244
}
233
245
}
246
+ $ result [$ uid ] = $ flags ;
234
247
}
235
- return [$ uids [0 ] => $ result ];
248
+
249
+ return $ result ;
236
250
}
237
251
238
252
/**
@@ -309,12 +323,12 @@ public function folders($reference = '', $folder = '*') {
309
323
* @return bool|array new flags if $silent is false, else true or false depending on success
310
324
*/
311
325
public function store (array $ flags , $ from , $ to = null , $ mode = null , $ silent = true ) {
312
- $ flag = "\\" . trim (is_array ($ flags ) ? implode (" \\ " , $ flags ) : $ flags );
326
+ $ flag = trim (is_array ($ flags ) ? implode (" " , $ flags ) : $ flags );
313
327
314
328
if ($ mode == "+ " ){
315
- $ status = \imap_setflag_full ($ this ->stream , $ from , $ flag , IMAP ::SE_UID );
329
+ $ status = \imap_setflag_full ($ this ->stream , $ from , $ flag , IMAP ::NIL );
316
330
}else {
317
- $ status = \imap_clearflag_full ($ this ->stream , $ from , $ flag , IMAP ::SE_UID );
331
+ $ status = \imap_clearflag_full ($ this ->stream , $ from , $ flag , IMAP ::NIL );
318
332
}
319
333
320
334
if ($ silent === true ) {
@@ -464,7 +478,7 @@ public function done() {
464
478
* @return array message ids
465
479
*/
466
480
public function search (array $ params ) {
467
- return \imap_search ($ this ->stream , $ params [0 ], IMAP ::SE_UID );
481
+ return \imap_search ($ this ->stream , $ params [0 ], IMAP ::NIL );
468
482
}
469
483
470
484
/**
0 commit comments