justinkbruce / utilities
utilities
Installs: 44
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 1
Open Issues: 0
Type:project
Requires
- ext-imap: *
- jms/serializer: 1.7.*
Requires (Dev)
- codeception/codeception: ^3.0
- phpdocumentor/phpdocumentor: ^2.0.5
This package is auto-updated.
Last update: 2024-04-29 04:41:38 UTC
README
How to create a unit test
vendor\bin\codecept g:test unit <testName>
Test code
vendor\bin\codecept run
Run Documentation
Important: Before running the documentation you need to have installed graphviz and have it on your path - https://graphviz.gitlab.io/about/
For more information about documenting your code - https://phpdoc.org
vendor/bin/phpdoc -d classes/ -t documentation/
For windows:
vendor\bin\phpdoc -d classes\ -t documentation\
How to use code
Open imap stream
$emailReader = new \Utilities\EmailReader("host", "username", "password", "port number (optional: default is 993)");
$mailBox = $emailReader->openMailBox("flags" (optional: default is "/imap/ssl"));
Get an array of mailbox folders to choose from
$folders = $emailReader->getMailBoxFolders();
Open the desired mailbox folder from the returned array
Use the returned folders array to select which mailbox folder you want to open
$mailBoxFolder = $emailReader->openMailBoxFolder($folders[0]);
Get the headers of all the messages in the selected mailbox folder
$headers = $emailReader->getMailBoxHeaders($mailBoxFolder);
Read a selected message in the mailbox folder
Select which message number you want to read from the mailbox folder
$messageNumber = 418
$email = $emailReader->getMessageData($messageNumber, $mailBoxFolder);
Dump the attached files to a specified directory location
If there is an attachment on the email you want to download: Supply the email using the above method and a valid directory path you want the attachments to be downloaded to
$directory = "C:\\Users\\user\\Downloads\\";
$emailReader->dumpAttachments($email, $directory);
Set message status
Set flags to messages using predefined constants: EMAIL_SEEN, EMAIL_FLAGGED, EMAIL_DELETED, EMAIL_DRAFT or EMAIL_ANSWERED
$messageNumberSequence = 2;
$emailReader->setMessageStatus($messageNumberSequence, EMAIL_SEEN);
Clear message status
Clear flags from messages using predefined constants: EMAIL_SEEN, EMAIL_FLAGGED, EMAIL_DELETED, EMAIL_DRAFT or EMAIL_ANSWERED
$messageNumberSequence = 2;
$emailReader->setMessageStatus($messageNumberSequence, EMAIL_SEEN);
Move or copy messages to a different mailbox folder
Important: Some email servers require specific flags to be set before moving messages to a specific folder. For example: On a Gmail server, in order for messages to be moved to the Drafts folder ([Gmail]/Drafts) the message first needs to be flagged as "\Draft"
Move:
$messageNumberSequence = 2;
$emailReader->messageMove($messageNumberSequence, $folders[2]);
Copy:
$messageNumberSequence = 2;
$emailReader->messageCopy($messageNumberSequence, $folders[2]);
Delete a message in the mailbox folder
$messageNumber = 2;
$emailReader->messageDelete($messageNumber);
Search for messages
Search for messages numbers containing a specific criteria
Returns an array of message numbers containing the search criteria. A list of search criteria can be found here: https://www.php.net/manual/en/function.imap-search.php
$searchCriteria = "SUBJECT \"test\"";
$searchResults = $emailReader->search($searchCriteria);
Get the headers for the searched
Requires the search results from the initial search and returns the headers of all the searched emails
$searchResultHeaders = $emailReader->getSearchResultHeaders($searchResults);