/** * returns all system emails * @return array */ function rtmb_get_module_mailbox_emails($module) { global $rt_mail_settings; $emails = array(); $google_acs = $rt_mail_settings->get_user_google_ac(array('module' => $module)); foreach ($google_acs as $ac) { $ac->email_data = unserialize($ac->email_data); $ac_email = filter_var($ac->email_data['email'], FILTER_SANITIZE_EMAIL); $hdZendEmail = new Rt_Zend_Mail(); if ($hdZendEmail->try_imap_login($ac_email, $ac->outh_token, $ac->type, $ac->imap_server)) { $emails[] = $ac_email; } } return $emails; }
/** * mailbox folder ui * @param $module * @param string $mailboxid */ function rtmailbox_mailbox_folder_ui($module, $mailboxid = '') { global $rt_mail_settings; $args = array('module' => $module); if (!empty($mailboxid)) { $args['id'] = $mailboxid; } $mailboxes = $rt_mail_settings->get_user_google_ac($args); ?> <h4>Select Mailbox Folders</h4> <?php if (isset($mailboxes) && !empty($mailboxes)) { foreach ($mailboxes as $mailbox) { $mailbox->email_data = unserialize($mailbox->email_data); $email = filter_var($mailbox->email_data['email'], FILTER_SANITIZE_EMAIL); $email_type = $mailbox->type; $imap_server = $mailbox->imap_server; $mail_folders = isset($mailbox->email_data['mail_folders']) ? $mailbox->email_data['mail_folders'] : ''; $mail_folders = array_filter(explode(',', $mail_folders)); $token = $mailbox->outh_token; $all_folders = null; $login_successful = true; try { $hdZendEmail = new Rt_Zend_Mail(); if ($hdZendEmail->try_imap_login($email, $token, $email_type, $imap_server)) { $storage = new ImapStorage($hdZendEmail->imap); $all_folders = $storage->getFolders(); } else { $login_successful = false; } } catch (Exception $e) { $login_successful = false; echo '<p class="description">' . esc_html($e->getMessage()) . '</p>'; } if ($login_successful) { ?> <form id="rtmailbox-imap-folder-form" method="post"> <input id="rtmailbox-module" name="rtmailbox[module]" value="<?php echo $module; ?> " type="hidden"> <input id="rtmailbox-email" name="rtmailbox[email]" value="<?php echo $email; ?> " type="hidden"> <?php wp_nonce_field('rtmailbox_folder_update'); do_action('rt_mailbox_folder_view_before'); ?> <div class="rtmailbox-row"> <label for=""><?php _e('Select Folder'); ?> </label> <div class="mailbox-folder-list"> <?php $hdZendEmail->render_folders_checkbox($all_folders, $element_name = 'mail_folders[' . esc_attr($email) . ']', $values = $mail_folders, $data_str = 'data-email-id=' . $mailbox->id); ?> </div> </div> <div class="clear"></div> <div class="rtmailbox-row"> <label></label> <input id="rtmailbox-action" name="rtmailbox[action]" value="rtmailbox_folder_update" type="hidden"> <input id="rtmailbox-save" data-mailboxid="<?php echo $mailboxid; ?> " name="rtmailbox[save]" class="button" value="Save" type="button"> </div> <?php do_action('rt_mailbox_folder_view_after'); ?> </form> <?php } } } else { echo '<p>Mailbox not found.</p>'; } }