當前位置: 首頁>>代碼示例>>PHP>>正文


PHP Ticket_User::get_email_by_user_id方法代碼示例

本文整理匯總了PHP中Ticket_User::get_email_by_user_id方法的典型用法代碼示例。如果您正苦於以下問題:PHP Ticket_User::get_email_by_user_id方法的具體用法?PHP Ticket_User::get_email_by_user_id怎麽用?PHP Ticket_User::get_email_by_user_id使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在Ticket_User的用法示例。


在下文中一共展示了Ticket_User::get_email_by_user_id方法的1個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的PHP代碼示例。

示例1: cron

 /**
  * the cron funtion (workhorse of the mailing system).
  * The cron job will create a child process, which will first send the emails that are in the email table in the database, we use some kind of semaphore (a temp file) to make sure that
  * if the cron job is called multiple times, it wont email those mails multiple times. After this, we will read the mail inboxes of the support groups and the default group using IMAP
  * and we will add new tickets or new replies according to the incoming emails.
  */
 function cron()
 {
     global $cfg;
     global $MAIL_LOG_PATH;
     $default_groupemail = $cfg['mail']['default_groupemail'];
     $default_groupname = $cfg['mail']['default_groupname'];
     /*
             $inbox_host = $cfg['mail']['host'];
             $oms_reply_to = "Ryzom Ticketing Support <ticketing@".$inbox_host.">";*/
     global $MAIL_DIR;
     error_log("========================================================\n", 3, $MAIL_LOG_PATH);
     error_log("mailing cron Job started at: " . Helpers::outputTime(time(), 0) . "\n", 3, $MAIL_LOG_PATH);
     //creates child process
     $pid = self::mail_fork();
     $pidfile = '/tmp/ams_cron_email_pid';
     if ($pid) {
         // We're the parent process, do nothing!
         //INFO: if $pid =
         //-1: "Could not fork!\n";
         // 0: "In child!\n";
         //>0: "In parent!\n";
     } else {
         //deliver new mail
         //make db connection here because the children have to make the connection.
         $this->db = new DBLayer("lib");
         //if $pidfile doesn't exist yet, then start sending the mails that are in the db.
         if (!file_exists($pidfile)) {
             //create the file and write the child processes id in it!
             $pid = getmypid();
             $file = fopen($pidfile, 'w');
             fwrite($file, $pid);
             fclose($file);
             //select all new & failed emails & try to send them
             //$emails = db_query("select * from email where status = 'NEW' or status = 'FAILED'");
             $statement = $this->db->select("email", array(null), "Status = 'NEW' or Status = 'FAILED'");
             $emails = $statement->fetchAll();
             foreach ($emails as $email) {
                 $message_id = self::new_message_id($email['TicketId']);
                 //if recipient isn't given, then use the email of the id_user instead!
                 if (!$email['Recipient']) {
                     $email['Recipient'] = Ticket_User::get_email_by_user_id($email['UserId']);
                 }
                 //create sending email adres based on the $sender id which refers to the department id
                 if ($email['Sender'] == NULL) {
                     $from = $default_groupname . " <" . $default_groupemail . ">";
                 } else {
                     $group = Support_Group::getGroup($email['Sender']);
                     $from = $group->getName() . " <" . $group->getGroupEmail() . ">";
                 }
                 $headers = "From: {$from}\r\n" . "Message-ID: " . $message_id;
                 if (mail($email['Recipient'], $email['Subject'], $email['Body'], $headers)) {
                     $status = "DELIVERED";
                     error_log("Emailed {$email['Recipient']}\n", 3, $MAIL_LOG_PATH);
                 } else {
                     $status = "FAILED";
                     error_log("Email to {$email['Recipient']} failed\n", 3, $MAIL_LOG_PATH);
                 }
                 //change the status of the emails.
                 $this->db->execute('update email set Status = ?, MessageId = ?, Attempts = Attempts + 1 where MailId = ?', array($status, $message_id, $email['MailId']));
             }
             unlink($pidfile);
         }
         // Check mail
         $sGroups = Support_Group::getGroups();
         //decrypt passwords in the db!
         $crypter = new MyCrypt($cfg['crypt']);
         foreach ($sGroups as $group) {
             $group->setIMAP_Password($crypter->decrypt($group->getIMAP_Password()));
         }
         $defaultGroup = new Support_Group();
         $defaultGroup->setSGroupId(0);
         $defaultGroup->setGroupEmail($default_groupemail);
         $defaultGroup->setIMAP_MailServer($cfg['mail']['default_mailserver']);
         $defaultGroup->setIMAP_Username($cfg['mail']['default_username']);
         $defaultGroup->setIMAP_Password($cfg['mail']['default_password']);
         //add default group to the list
         $sGroups[] = $defaultGroup;
         foreach ($sGroups as $group) {
             //check if group has mailing stuff filled in!
             if ($group->getGroupEmail() != "" && $group->getIMAP_MailServer() != "" && $group->getIMAP_Username() != "" && $group->getIMAP_Password() != "") {
                 $mbox = imap_open($group->getIMAP_MailServer(), $group->getIMAP_Username(), $group->getIMAP_Password()) or die('Cannot connect to mail server: ' . imap_last_error());
                 $message_count = imap_num_msg($mbox);
                 for ($i = 1; $i <= $message_count; ++$i) {
                     //return task ID
                     $tkey = self::incoming_mail_handler($mbox, $i, $group);
                     if ($tkey) {
                         //base file on Ticket + timestamp
                         $file = fopen($MAIL_DIR . "/ticket" . $tkey, 'w');
                         error_log("Email was written to " . $MAIL_DIR . "/ticket" . $tkey . "\n", 3, $MAIL_LOG_PATH);
                         fwrite($file, imap_fetchheader($mbox, $i) . imap_body($mbox, $i));
                         fclose($file);
                         //mark message $i of $mbox for deletion!
                         imap_delete($mbox, $i);
                     }
//.........這裏部分代碼省略.........
開發者ID:cls1991,項目名稱:ryzomcore,代碼行數:101,代碼來源:mail_handler.php


注:本文中的Ticket_User::get_email_by_user_id方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。