Composer
<?php
namespace program;
require_once "vendor/autoload.php";
use SSilence\ImapClient\ImapClientException;
use SSilence\ImapClient\ImapConnect;
use SSilence\ImapClient\ImapClient as Imap;
$mailbox = 'my.imapserver.com';
$username = 'username';
$password = 'secret';
$encryption = Imap::ENCRYPT_SSL;
try{
$imap = new Imap($mailbox, $username, $password, $encryption);
}catch (ImapClientException $error){
echo $error->getMessage().PHP_EOL;
die();
}
$folders = $imap->getFolders();
foreach($folders as $folder) {
echo $folder;
}
$imap->selectFolder('INBOX');
$overallMessages = $imap->countMessages();
$unreadMessages = $imap->countUnreadMessages();
$emails = $imap->getMessages();
var_dump($emails);
$imap->addFolder('archive');
$imap->moveMessage($emails[0]['uid'], 'archive');
$imap->deleteMessage($emails[1]['uid']);
Connect
<?php
namespace program;
require_once "../ImapClient/ImapClientException.php";
require_once "../ImapClient/ImapConnect.php";
require_once "../ImapClient/ImapClient.php";
use SSilence\ImapClient\ImapClientException;
use SSilence\ImapClient\ImapConnect;
use SSilence\ImapClient\ImapClient;
$mailbox = 'my.imapserver.com';
$username = 'username';
$password = 'secret';
$encryption = ImapClient::ENCRYPT_TLS;
/*
* Default connection
* This is the default way to connect to an IMAP server using this
*/
$imap = new ImapClient($mailbox, $username, $password, $encryption);
$imap = new ImapClient($mailbox, $username, $password);
/*
* Advanced connect
*
* Options flags same like in ImapConnect::prepareFlags() method
* Options mailbox same like in ImapConnect::prepareMailbox() method
* Options connect same like in ImapConnect::connect() method
*/
/* Example 1
* Example 1 is the advanced default connection method
*/
$imap = new ImapClient([
'flags' => [
'service' => ImapConnect::SERVICE_IMAP,
'encrypt' => ImapConnect::ENCRYPT_SSL,
/* This NOVALIDATE_CERT is used when the server connecting to the imao
* servers is not https but the imap is. This ignores the failure.
*/
'validateCertificates' => ImapConnect::NOVALIDATE_CERT,
],
'mailbox' => [
'remote_system_name' => 'imap.server.ru',
],
'connect' => [
'username' => 'user',
'password' => 'pass'
]
]);
/* Example 2
* Get debug messages
*/
$imap = new ImapClient([
'flags' => [
'service' => ImapConnect::SERVICE_IMAP,
'encrypt' => ImapConnect::ENCRYPT_SSL,
'validateCertificates' => ImapConnect::VALIDATE_CERT,
'debug' => ImapConnect::DEBUG,
],
'mailbox' => [
'remote_system_name' => 'imap.server.ru',
'port' => 123,
],
'connect' => [
'username' => 'user',
'password' => 'pass'
]
]);
/* Example 3
* You can also set the config then connects
*/
ImapClient::setConnectAdvanced();
ImapClient::setConnectConfig([
'flags' => [
'service' => ImapConnect::SERVICE_POP3,
'validateCertificates' => ImapConnect::VALIDATE_CERT,
'debug' => ImapConnect::DEBUG,
],
]);
$imap = new ImapClient();
/* Example 5
* Here you can see all the options
*/
$imap = new ImapClient([
'flags' => [
'service' => ImapConnect::SERVICE_IMAP,
'encrypt' => ImapConnect::ENCRYPT_SSL,
'validateCertificates' => ImapConnect::NOVALIDATE_CERT,
'secure' => ImapConnect::SECURE,
'norsh' => ImapConnect::NORSH,
'readonly' => ImapConnect::READONLY,
'anonymous' => ImapConnect::ANONYMOUS,
'debug' => ImapConnect::DEBUG
],
'mailbox' => [
'remote_system_name' => 'imap.server.ru',
'port' => null,
'flags' => null,
'mailbox_name' => null,
],
'connect' => [
'mailbox' => null,
'username' => 'user',
'password' => 'pass',
'options' => 0,
'n_retries' => 0,
'params' => [],
]
]);
Direct
<?php
namespace program;
require_once "ImapClient/ImapClientException.php";
require_once "ImapClient/ImapConnect.php";
require_once "ImapClient/ImapClient.php";
use SSilence\ImapClient\ImapClientException;
use SSilence\ImapClient\ImapConnect;
use SSilence\ImapClient\ImapClient as Imap;
$mailbox = 'my.imapserver.com';
$username = 'username';
$password = 'secret';
$encryption = Imap::ENCRYPT_TLS;
try{
$imap = new Imap($mailbox, $username, $password, $encryption);
}catch (ImapClientException $error){
echo $error->getMessage().PHP_EOL;
die();
}
$folders = $imap->getFolders();
foreach($folders as $folder) {
echo $folder;
}
$imap->selectFolder('INBOX');
$overallMessages = $imap->countMessages();
$unreadMessages = $imap->countUnreadMessages();
$emails = $imap->getMessages();
var_dump($emails);
$imap->addFolder('archive');
$imap->moveMessage($emails[0]['uid'], 'archive');
$imap->deleteMessage($emails[1]['uid']);