コード例 #1
0
 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 />';
         }
     }
 }