/**
 * 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;
}
 function rt_send_email()
 {
     global $rt_mail_settings;
     $emailRow = $rt_mail_settings->get_new_sent_mail();
     if (empty($emailRow)) {
         return;
     }
     $rtZendEmail = new Rt_Zend_Mail();
     $accessTokenArray = array();
     $signature = '';
     foreach ($emailRow as $email) {
         error_log('Sending email : ' . var_export($email->id, true));
         if (!isset($accessTokenArray[$email->fromemail])) {
             $email_type = '';
             $imap_server = '';
             $accessTokenArray[$email->fromemail] = array('token' => $rt_mail_settings->get_accesstoken_from_email($email->fromemail, $signature, $email_type, $imap_server), 'email_type' => $email_type, 'imap_server' => $imap_server);
         }
         if ($rt_mail_settings->update_sent_email($email->id, 'p', 'no') > 0) {
             $updateFlag = false;
             try {
                 $fromname = !empty($email->fromname) ? $email->fromname : get_bloginfo();
                 $result = $rtZendEmail->sendemail($fromname, $email->fromemail, $accessTokenArray[$email->fromemail]['token'], $accessTokenArray[$email->fromemail]['email_type'], $accessTokenArray[$email->fromemail]['imap_server'], $email->subject, $email->body, unserialize($email->toemail), unserialize($email->ccemail), unserialize($email->bccemail), unserialize($email->attachement));
                 error_log(var_export('Email id :' . $email->id . ' Status :' . $result, true));
                 if ($result) {
                     $updateFlag = true;
                 }
             } catch (Exception $e) {
                 $updateFlag = false;
             }
             if ($updateFlag) {
                 $rt_mail_settings->update_sent_email($email->id, 'yes', 'p');
             } else {
                 $rt_mail_settings->update_sent_email($email->id, 'error', 'p');
                 echo 'Error: ' . esc_attr($email->id) . '<br />';
             }
         } else {
             echo 'Error: ' . esc_attr($email->id) . '<br />';
         }
     }
 }
Example #3
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>';
            }
        }