@@ -28,6 +28,7 @@ The functionality is almost completely integrated and even supports IDLE operati
2828 - [ Message flags] ( #message-flags )
2929 - [ Attachments] ( #attachments )
3030 - [ Advanced fetching] ( #advanced-fetching )
31+ - [ Events] ( #events )
3132 - [ Masking] ( #masking )
3233 - [ Specials] ( #specials )
3334- [ Support] ( #support )
@@ -210,13 +211,13 @@ $oClient->connect();
210211```
211212
212213#### Idle
213- Every time a new message is received the server will notify the client and return the new message.
214+ Every time a new message is received, the server will notify the client and return the new message.
214215``` php
215216/** @var \Webklex\PHPIMAP\Client $oClient */
216217
217218/** @var \Webklex\PHPIMAP\Folder $oFolder */
218219$oFolder->idle(function($message){
219- dump( $message->subject) ;
220+ echo $message->subject."\n" ;
220221});
221222```
222223
@@ -467,6 +468,39 @@ $aMessage = $oFolder->query()->whereAll()
467468->get();
468469```
469470
471+ #### Events
472+ The following events are available:
473+ - ` Webklex\PHPIMAP\Events\MessageNewEvent($message) ` &mdash ; can get triggered by ` Folder::idle `
474+ - ` Webklex\PHPIMAP\Events\MessageDeletedEvent($message) ` &mdash ; triggered by ` Message::delete `
475+ - ` Webklex\PHPIMAP\Events\MessageRestoredEvent($message) ` &mdash ; triggered by ` Message::restore `
476+ - ` Webklex\PHPIMAP\Events\MessageMovedEvent($old_message, $new_message) ` &mdash ; triggered by ` Message::move `
477+ - ` Webklex\PHPIMAP\Events\MessageCopiedEvent($old_message, $new_message) ` &mdash ; triggered by ` Message::copy `
478+ - ` Webklex\PHPIMAP\Events\FlagNewEvent($flag) ` &mdash ; triggered by ` Message::setFlag `
479+ - ` Webklex\PHPIMAP\Events\FlagDeletedEvent($flag) ` &mdash ; triggered by ` Message::unsetFlag `
480+ - ` Webklex\PHPIMAP\Events\FolderNewEvent($folder) ` &mdash ; can get triggered by ` Client::createFolder `
481+ - ` Webklex\PHPIMAP\Events\FolderDeletedEvent($folder) ` &mdash ; triggered by ` Folder::delete `
482+ - ` Webklex\PHPIMAP\Events\FolderMovedEvent($old_folder, $new_folder) ` &mdash ; triggered by ` Folder::move `
483+
484+ Create and register your own custom event:
485+ ``` php
486+ class CustomMessageNewEvent extends Webklex\PHPIMAP\Events\MessageNewEvent {
487+
488+ /**
489+ * Create a new event instance.
490+ * @var Message[] $messages
491+ * @return void
492+ */
493+ public function __construct($messages) {
494+ $this->message = $messages[0];
495+ echo "New message: ".$this->message->subject."\n";
496+ }
497+ }
498+
499+ /** @var \Webklex\PHPIMAP\Client $client */
500+ $client->setEvent("message", "new", CustomMessageNewEvent::class);
501+ ```
502+ ..or set it in your config file under ` events.message.new ` ,
503+
470504#### Masking
471505Laravel-IMAP already comes with two default masks [ MessageMask::class] ( #messagemaskclass ) and [ AttachmentMask::class] ( #attachmentmaskclass ) .
472506
0 commit comments