/** * 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 />'; } } }
/** * 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>'; } }