Ik probeer een simpel scripje te maken waarmee ik alle aanwezig emails in de "inbox" moet uitlezen, vervolgens opslaan (in database) en dan allemaal verwijderen.
Dit alles lukt prima tot de laatste stat, dat is namelijk het verwijderen.
Ik begrijp niet waarom dit niet werk, heb de handleiding al weet ik veel hoe vaak bekeken en gezocht op google, volgens mij doe ik het toch goed en werkt het niet.
Ik heb dit stukje code:
Alles werkt, dus uitlezen, in database zetten etc.
Als ik een "echo" plaats bij imap_delete dan krijg ik ook output met het id erin.
Een var_dump van imap_delete geeft een "true" terug, echter als ik dan inlog in de mailbox (of script opnieuw run) dan staan de uitgelezen mails er nog gewoon.
Ik heb echt geen idee meer wat ik nu verkeerd doe, dit zou volgens mij gewoon moeten werken lijkt me.
Maak ik ergens nog een fout of kan iemand me op weg helpen waar de fout zit in dit script?
Dit alles lukt prima tot de laatste stat, dat is namelijk het verwijderen.
Ik begrijp niet waarom dit niet werk, heb de handleiding al weet ik veel hoe vaak bekeken en gezocht op google, volgens mij doe ik het toch goed en werkt het niet.
Ik heb dit stukje code:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
| $mbox = imap_open( "{"".$row_conf['server']."":143/notls}", "" . $row_conf['username'] . "", "" . row_conf['password']."" ); $numMessages = imap_num_msg( $mbox ); for ( $i = 1; $i <= $numMessages; $i++ ) { $header = imap_header( $mbox, $i ); $id = imap_uid( $mbox, $i ); $mail[] = array( 'id' => $id, 'subject' => $header->subject ); } if ( count( $mail ) > 0 ) { $subject = count( $mail ) . " mails uitgelezen:\n"; foreach ( $mail as $key => $val ) { $subject .= $val['subject'] . "\n"; } $res = insertintoDB( $subject ); if ($res) { foreach ( $mail as $key => $val ) { imap_delete($mbox, $val[id]); } imap_expunge($mbox); } } imap_close( $mbox ); |
Alles werkt, dus uitlezen, in database zetten etc.
Als ik een "echo" plaats bij imap_delete dan krijg ik ook output met het id erin.
Een var_dump van imap_delete geeft een "true" terug, echter als ik dan inlog in de mailbox (of script opnieuw run) dan staan de uitgelezen mails er nog gewoon.
Ik heb echt geen idee meer wat ik nu verkeerd doe, dit zou volgens mij gewoon moeten werken lijkt me.
Maak ik ergens nog een fout of kan iemand me op weg helpen waar de fout zit in dit script?