本文整理汇总了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);
}
//.........这里部分代码省略.........