/**
 * 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;
}
Exemple #2
0
        /**
         * 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>';
            }
        }