Merge pull request #18302 from civicrm/5.29
[civicrm-core.git] / CRM / Mailing / MailStore.php
index 7f1447475f0c46552b54efdd2b472b8d4d8ef4cd..90db173cdc97764a7a304c67af399ac10df7caca 100644 (file)
@@ -39,7 +39,7 @@ class CRM_Mailing_MailStore {
       throw new Exception("Could not find entry named $name in civicrm_mail_settings");
     }
 
-    $protocols = CRM_Core_PseudoConstant::get('CRM_Core_DAO_MailSettings', 'protocol');
+    $protocols = CRM_Core_PseudoConstant::get('CRM_Core_DAO_MailSettings', 'protocol', [], 'validate');
     if (empty($protocols[$dao->protocol])) {
       throw new Exception("Empty mail protocol");
     }
@@ -48,6 +48,9 @@ class CRM_Mailing_MailStore {
       case 'IMAP':
         return new CRM_Mailing_MailStore_Imap($dao->server, $dao->username, $dao->password, (bool) $dao->is_ssl, $dao->source);
 
+      case 'IMAP_XOAUTH2':
+        return new CRM_Mailing_MailStore_Imap($dao->server, $dao->username, $dao->password, (bool) $dao->is_ssl, $dao->source, TRUE);
+
       case 'POP3':
         return new CRM_Mailing_MailStore_Pop3($dao->server, $dao->username, $dao->password, (bool) $dao->is_ssl);