MDL-51894 inboundmessage: Ensure that all mailboxes exist
This commit is contained in:
@@ -102,6 +102,10 @@ class manager {
|
||||
try {
|
||||
$this->client->login();
|
||||
mtrace("Connection established.");
|
||||
|
||||
// Ensure that mailboxes exist.
|
||||
$this->ensure_mailboxes_exist();
|
||||
|
||||
return true;
|
||||
|
||||
} catch (\Horde_Imap_Client_Exception $e) {
|
||||
@@ -735,6 +739,27 @@ class manager {
|
||||
return in_array($flag, $flags);
|
||||
}
|
||||
|
||||
/**
|
||||
* Ensure that all mailboxes exist.
|
||||
*/
|
||||
private function ensure_mailboxes_exist() {
|
||||
$requiredmailboxes = array(
|
||||
self::MAILBOX,
|
||||
self::CONFIRMATIONFOLDER,
|
||||
);
|
||||
|
||||
$existingmailboxes = $this->client->listMailboxes($requiredmailboxes);
|
||||
foreach ($requiredmailboxes as $mailbox) {
|
||||
if (isset($existingmailboxes[$mailbox])) {
|
||||
// This mailbox was found.
|
||||
continue;
|
||||
}
|
||||
|
||||
mtrace("Unable to find the '{$mailbox}' mailbox - creating it.");
|
||||
$this->client->createMailbox($mailbox);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Attempt to determine whether this message is a bulk message (e.g. automated reply).
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user