本文整理汇总了PHP中get_mailer函数的典型用法代码示例。如果您正苦于以下问题:PHP get_mailer函数的具体用法?PHP get_mailer怎么用?PHP get_mailer使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了get_mailer函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的PHP代码示例。
示例1: send
/**
* 发送邮件
*
* @author Garbin
* @param int $limit
* @return void
*/
function send($limit = 5)
{
/* 清除不能发送的邮件 */
$this->clear();
/* 获取待发送的邮件,按发送时间,优先及除序,错误次数升序 */
$gmtime = gmtime();
/* 取出所有未锁定的 */
$mails = $this->find(array('conditions' => "lock_expiry < {$gmtime}", 'order' => 'add_time DESC, priority DESC, err_num ASC', 'limit' => "0, {$limit}"));
if (!$mails) {
/* 没有邮件,不需要发送 */
return 0;
}
/* 锁定待发送邮件 */
$queue_ids = array_keys($mails);
$lock_expiry = $gmtime + 30;
//锁定30秒
$this->edit($queue_ids, "err_num = err_num + 1, lock_expiry = {$lock_expiry}");
/* 获取邮件发送接口 */
$mailer =& get_mailer();
$mail_count = count($queue_ids);
$error_count = 0;
$error = '';
/* 逐条发送 */
for ($i = 0; $i < $mail_count; $i++) {
$mail = $mails[$queue_ids[$i]];
$result = $mailer->send($mail['mail_to'], $mail['mail_subject'], $mail['mail_body'], $mail['mail_encoding'], 1);
if ($result) {
/* 发送成功,从队列中删除 */
$this->drop($queue_ids[$i]);
} else {
$error_count++;
}
}
return array('mail_count' => $mail_count, 'error_count' => $error_count, 'error' => $mailer->errors);
}
开发者ID:184609680,项目名称:wcy_O2O_95180,代码行数:42,代码来源:mailqueue.model.php
示例2: notify
public function notify($changelist, $user, $course)
{
$message_size = 160;
// 160 chars
$course_shortname_limit = 10;
$subject_overhead = ' () ';
// space()space -> overhead of 4 chars in the subject
$from = '[email protected]';
$to = "{$user->phone2}@smsprovider.tec";
// replace all occurences of ++ with 00
$to = str_replace('++', '00', $to);
// replace all occurences of + with 00
$to = str_replace('+', '00', $to);
$subject = substr($course->shortname, 0, $course_shortname_limit);
$smsmessage = $this->message($changelist, $course);
// if the sms message is longer than 160 chars then cut and put ... at the end of the message
$message_length = strlen($from . $subject_overhead . $subject . $smsmessage);
//echo $message_length."\n";
if ($message_length > $message_size) {
$proper_size = $message_size - strlen($from . $subject_overhead . $subject) - 3;
$smsmessage = substr($smsmessage, 0, $proper_size) . '...';
}
/*
echo "\n\n";
echo "$from\n\n";
echo "$to\n\n";
echo "$subject\n\n";
echo "$smsmessage\n\n";
echo "\n\n";
return;
*/
$mail = get_mailer();
$mail->Sender = $from;
$mail->From = $from;
$mail->AddReplyTo($from);
$mail->Subject = $subject;
$mail->AddAddress($to);
//to $phone.self::$emailsuffix
$mail->Body = $smsmessage;
$mail->IsHTML(false);
if ($mail->Send()) {
$mail->IsSMTP();
// use SMTP directly
if (!empty($mail->SMTPDebug)) {
echo '</pre>';
echo 'mail sent';
}
} else {
if (!empty($mail->SMTPDebug)) {
echo '</pre>';
}
//Send Error
return $mail->ErrorInfo;
}
}
开发者ID:rogiervandongen,项目名称:moodle_notifications_20,代码行数:55,代码来源:SMS.php
示例3: cron_run
//.........这里部分代码省略.........
$usernamefields = get_all_user_name_fields(true, 'u');
$newusers = $DB->get_recordset_sql("SELECT u.id as id, u.email,\n {$usernamefields}, u.username, u.lang,\n p.id as prefid\n FROM {user} u\n JOIN {user_preferences} p ON u.id=p.userid\n WHERE p.name='create_password' AND p.value='1' AND u.email !='' AND u.suspended = 0 AND u.auth != 'nologin' AND u.deleted = 0");
// note: we can not send emails to suspended accounts
foreach ($newusers as $newuser) {
// Use a low cost factor when generating bcrypt hash otherwise
// hashing would be slow when emailing lots of users. Hashes
// will be automatically updated to a higher cost factor the first
// time the user logs in.
if (setnew_password_and_mail($newuser, true)) {
unset_user_preference('create_password', $newuser);
set_user_preference('auth_forcepasswordchange', 1, $newuser);
} else {
trigger_error("Could not create and mail new user password!");
}
}
$newusers->close();
}
// It is very important to run enrol early
// because other plugins depend on correct enrolment info.
mtrace("Running enrol crons if required...");
$enrols = enrol_get_plugins(true);
foreach ($enrols as $ename => $enrol) {
// do this for all plugins, disabled plugins might want to cleanup stuff such as roles
if (!$enrol->is_cron_required()) {
continue;
}
mtrace("Running cron for enrol_{$ename}...");
cron_trace_time_and_memory();
$enrol->cron();
$enrol->set_config('lastcron', time());
}
// Run all cron jobs for each module
mtrace("Starting activity modules");
get_mailer('buffer');
if ($mods = $DB->get_records_select("modules", "cron > 0 AND ((? - lastcron) > cron) AND visible = 1", array($timenow))) {
foreach ($mods as $mod) {
$libfile = "{$CFG->dirroot}/mod/{$mod->name}/lib.php";
if (file_exists($libfile)) {
include_once $libfile;
$cron_function = $mod->name . "_cron";
if (function_exists($cron_function)) {
mtrace("Processing module function {$cron_function} ...", '');
cron_trace_time_and_memory();
$pre_dbqueries = null;
$pre_dbqueries = $DB->perf_get_queries();
$pre_time = microtime(1);
if ($cron_function()) {
$DB->set_field("modules", "lastcron", $timenow, array("id" => $mod->id));
}
if (isset($pre_dbqueries)) {
mtrace("... used " . ($DB->perf_get_queries() - $pre_dbqueries) . " dbqueries");
mtrace("... used " . (microtime(1) - $pre_time) . " seconds");
}
// Reset possible changes by modules to time_limit. MDL-11597
@set_time_limit(0);
mtrace("done.");
}
}
}
}
get_mailer('close');
mtrace("Finished activity modules");
mtrace("Starting blocks");
if ($blocks = $DB->get_records_select("block", "cron > 0 AND ((? - lastcron) > cron) AND visible = 1", array($timenow))) {
// We will need the base class.
require_once $CFG->dirroot . '/blocks/moodleblock.class.php';
开发者ID:tyleung,项目名称:CMPUT401MoodleExams,代码行数:67,代码来源:cronlib.php
示例4: email_to_user
/**
* Send an email to a specified user
*
* @param stdClass $user A {@link $USER} object
* @param stdClass $from A {@link $USER} object
* @param string $subject plain text subject line of the email
* @param string $messagetext plain text version of the message
* @param string $messagehtml complete html version of the message (optional)
* @param string $attachment a file on the filesystem, either relative to $CFG->dataroot or a full path to a file in $CFG->tempdir
* @param string $attachname the name of the file (extension indicates MIME)
* @param bool $usetrueaddress determines whether $from email address should
* be sent out. Will be overruled by user profile setting for maildisplay
* @param string $replyto Email address to reply to
* @param string $replytoname Name of reply to recipient
* @param int $wordwrapwidth custom word wrap width, default 79
* @return bool Returns true if mail was sent OK and false if there was an error.
*/
function email_to_user($user, $from, $subject, $messagetext, $messagehtml = '', $attachment = '', $attachname = '', $usetrueaddress = true, $replyto = '', $replytoname = '', $wordwrapwidth = 79)
{
global $CFG, $PAGE, $SITE;
if (empty($user) or empty($user->id)) {
debugging('Can not send email to null user', DEBUG_DEVELOPER);
return false;
}
if (empty($user->email)) {
debugging('Can not send email to user without email: ' . $user->id, DEBUG_DEVELOPER);
return false;
}
if (!empty($user->deleted)) {
debugging('Can not send email to deleted user: ' . $user->id, DEBUG_DEVELOPER);
return false;
}
if (defined('BEHAT_SITE_RUNNING')) {
// Fake email sending in behat.
return true;
}
if (!empty($CFG->noemailever)) {
// Hidden setting for development sites, set in config.php if needed.
debugging('Not sending email due to $CFG->noemailever config setting', DEBUG_NORMAL);
return true;
}
if (email_should_be_diverted($user->email)) {
$subject = "[DIVERTED {$user->email}] {$subject}";
$user = clone $user;
$user->email = $CFG->divertallemailsto;
}
// Skip mail to suspended users.
if (isset($user->auth) && $user->auth == 'nologin' or isset($user->suspended) && $user->suspended) {
return true;
}
if (!validate_email($user->email)) {
// We can not send emails to invalid addresses - it might create security issue or confuse the mailer.
debugging("email_to_user: User {$user->id} (" . fullname($user) . ") email ({$user->email}) is invalid! Not sending.");
return false;
}
if (over_bounce_threshold($user)) {
debugging("email_to_user: User {$user->id} (" . fullname($user) . ") is over bounce threshold! Not sending.");
return false;
}
// TLD .invalid is specifically reserved for invalid domain names.
// For More information, see {@link http://tools.ietf.org/html/rfc2606#section-2}.
if (substr($user->email, -8) == '.invalid') {
debugging("email_to_user: User {$user->id} (" . fullname($user) . ") email domain ({$user->email}) is invalid! Not sending.");
return true;
// This is not an error.
}
// If the user is a remote mnet user, parse the email text for URL to the
// wwwroot and modify the url to direct the user's browser to login at their
// home site (identity provider - idp) before hitting the link itself.
if (is_mnet_remote_user($user)) {
require_once $CFG->dirroot . '/mnet/lib.php';
$jumpurl = mnet_get_idp_jump_url($user);
$callback = partial('mnet_sso_apply_indirection', $jumpurl);
$messagetext = preg_replace_callback("%({$CFG->wwwroot}[^[:space:]]*)%", $callback, $messagetext);
$messagehtml = preg_replace_callback("%href=[\"'`]({$CFG->wwwroot}[\\w_:\\?=#&@/;.~-]*)[\"'`]%", $callback, $messagehtml);
}
$mail = get_mailer();
if (!empty($mail->SMTPDebug)) {
echo '<pre>' . "\n";
}
$temprecipients = array();
$tempreplyto = array();
// Make sure that we fall back onto some reasonable no-reply address.
$noreplyaddress = empty($CFG->noreplyaddress) ? 'noreply@' . get_host_from_url($CFG->wwwroot) : $CFG->noreplyaddress;
// Make up an email address for handling bounces.
if (!empty($CFG->handlebounces)) {
$modargs = 'B' . base64_encode(pack('V', $user->id)) . substr(md5($user->email), 0, 16);
$mail->Sender = generate_email_processing_address(0, $modargs);
} else {
$mail->Sender = $noreplyaddress;
}
$alloweddomains = null;
if (!empty($CFG->allowedemaildomains)) {
$alloweddomains = explode(PHP_EOL, $CFG->allowedemaildomains);
}
// Email will be sent using no reply address.
if (empty($alloweddomains)) {
$usetrueaddress = false;
}
if (is_string($from)) {
//.........这里部分代码省略.........
开发者ID:lucaboesch,项目名称:moodle,代码行数:101,代码来源:moodlelib.php
示例5: email_to_user
/**
* Send an email to a specified user
*
* @param stdClass $user A {@link $USER} object
* @param stdClass $from A {@link $USER} object
* @param string $subject plain text subject line of the email
* @param string $messagetext plain text version of the message
* @param string $messagehtml complete html version of the message (optional)
* @param string $attachment a file on the filesystem, either relative to $CFG->dataroot or a full path to a file in $CFG->tempdir
* @param string $attachname the name of the file (extension indicates MIME)
* @param bool $usetrueaddress determines whether $from email address should
* be sent out. Will be overruled by user profile setting for maildisplay
* @param string $replyto Email address to reply to
* @param string $replytoname Name of reply to recipient
* @param int $wordwrapwidth custom word wrap width, default 79
* @return bool Returns true if mail was sent OK and false if there was an error.
*/
function email_to_user($user, $from, $subject, $messagetext, $messagehtml = '', $attachment = '', $attachname = '', $usetrueaddress = true, $replyto = '', $replytoname = '', $wordwrapwidth = 79)
{
global $CFG;
if (empty($user) or empty($user->id)) {
debugging('Can not send email to null user', DEBUG_DEVELOPER);
return false;
}
if (empty($user->email)) {
debugging('Can not send email to user without email: ' . $user->id, DEBUG_DEVELOPER);
return false;
}
if (!empty($user->deleted)) {
debugging('Can not send email to deleted user: ' . $user->id, DEBUG_DEVELOPER);
return false;
}
if (defined('BEHAT_SITE_RUNNING')) {
// Fake email sending in behat.
return true;
}
if (!empty($CFG->noemailever)) {
// Hidden setting for development sites, set in config.php if needed.
debugging('Not sending email due to $CFG->noemailever config setting', DEBUG_NORMAL);
return true;
}
if (!empty($CFG->divertallemailsto)) {
$subject = "[DIVERTED {$user->email}] {$subject}";
$user = clone $user;
$user->email = $CFG->divertallemailsto;
}
// Skip mail to suspended users.
if (isset($user->auth) && $user->auth == 'nologin' or isset($user->suspended) && $user->suspended) {
return true;
}
if (!validate_email($user->email)) {
// We can not send emails to invalid addresses - it might create security issue or confuse the mailer.
debugging("email_to_user: User {$user->id} (" . fullname($user) . ") email ({$user->email}) is invalid! Not sending.");
return false;
}
if (over_bounce_threshold($user)) {
debugging("email_to_user: User {$user->id} (" . fullname($user) . ") is over bounce threshold! Not sending.");
return false;
}
// TLD .invalid is specifically reserved for invalid domain names.
// For More information, see {@link http://tools.ietf.org/html/rfc2606#section-2}.
if (substr($user->email, -8) == '.invalid') {
debugging("email_to_user: User {$user->id} (" . fullname($user) . ") email domain ({$user->email}) is invalid! Not sending.");
return true;
// This is not an error.
}
// If the user is a remote mnet user, parse the email text for URL to the
// wwwroot and modify the url to direct the user's browser to login at their
// home site (identity provider - idp) before hitting the link itself.
if (is_mnet_remote_user($user)) {
require_once $CFG->dirroot . '/mnet/lib.php';
$jumpurl = mnet_get_idp_jump_url($user);
$callback = partial('mnet_sso_apply_indirection', $jumpurl);
$messagetext = preg_replace_callback("%({$CFG->wwwroot}[^[:space:]]*)%", $callback, $messagetext);
$messagehtml = preg_replace_callback("%href=[\"'`]({$CFG->wwwroot}[\\w_:\\?=#&@/;.~-]*)[\"'`]%", $callback, $messagehtml);
}
$mail = get_mailer();
if (!empty($mail->SMTPDebug)) {
echo '<pre>' . "\n";
}
$temprecipients = array();
$tempreplyto = array();
$supportuser = core_user::get_support_user();
// Make up an email address for handling bounces.
if (!empty($CFG->handlebounces)) {
$modargs = 'B' . base64_encode(pack('V', $user->id)) . substr(md5($user->email), 0, 16);
$mail->Sender = generate_email_processing_address(0, $modargs);
} else {
$mail->Sender = $supportuser->email;
}
if (!empty($CFG->emailonlyfromnoreplyaddress)) {
$usetrueaddress = false;
if (empty($replyto) && $from->maildisplay) {
$replyto = $from->email;
$replytoname = fullname($from);
}
}
if (is_string($from)) {
// So we can pass whatever we want if there is need.
$mail->From = $CFG->noreplyaddress;
//.........这里部分代码省略.........
开发者ID:riawarra,项目名称:moodle,代码行数:101,代码来源:moodlelib.php
示例6: email_to_user
/**
* Send an email to a specified user
*
* @uses $CFG
* @uses $FULLME
* @uses $MNETIDPJUMPURL IdentityProvider(IDP) URL user hits to jump to mnet peer.
* @uses SITEID
* @param user $user A {@link $USER} object
* @param user $from A {@link $USER} object
* @param string $subject plain text subject line of the email
* @param string $messagetext plain text version of the message
* @param string $messagehtml complete html version of the message (optional)
* @param string $attachment a file on the filesystem, relative to $CFG->dataroot
* @param string $attachname the name of the file (extension indicates MIME)
* @param bool $usetrueaddress determines whether $from email address should
* be sent out. Will be overruled by user profile setting for maildisplay
* @param int $wordwrapwidth custom word wrap width
* @return bool|string Returns "true" if mail was sent OK, "emailstop" if email
* was blocked by user and "false" if there was another sort of error.
*/
function email_to_user($user, $from, $subject, $messagetext, $messagehtml = '', $attachment = '', $attachname = '', $usetrueaddress = true, $replyto = '', $replytoname = '', $wordwrapwidth = 79)
{
global $CFG, $FULLME, $MNETIDPJUMPURL;
static $mnetjumps = array();
if (empty($user) || empty($user->email)) {
return false;
}
if (!empty($user->deleted)) {
// do not mail delted users
return false;
}
if (!empty($CFG->noemailever)) {
// hidden setting for development sites, set in config.php if needed
return true;
}
// skip mail to suspended users
if (isset($user->auth) && $user->auth == 'nologin') {
return true;
}
if (!empty($user->emailstop)) {
return 'emailstop';
}
if (over_bounce_threshold($user)) {
error_log("User {$user->id} (" . fullname($user) . ") is over bounce threshold! Not sending.");
return false;
}
// If the user is a remote mnet user, parse the email text for URL to the
// wwwroot and modify the url to direct the user's browser to login at their
// home site (identity provider - idp) before hitting the link itself
if (is_mnet_remote_user($user)) {
require_once $CFG->dirroot . '/mnet/lib.php';
// Form the request url to hit the idp's jump.php
if (isset($mnetjumps[$user->mnethostid])) {
$MNETIDPJUMPURL = $mnetjumps[$user->mnethostid];
} else {
$idp = mnet_get_peer_host($user->mnethostid);
$idpjumppath = '/auth/mnet/jump.php';
$MNETIDPJUMPURL = $idp->wwwroot . $idpjumppath . '?hostwwwroot=' . $CFG->wwwroot . '&wantsurl=';
$mnetjumps[$user->mnethostid] = $MNETIDPJUMPURL;
}
$messagetext = preg_replace_callback("%({$CFG->wwwroot}[^[:space:]]*)%", 'mnet_sso_apply_indirection', $messagetext);
$messagehtml = preg_replace_callback("%href=[\"'`]({$CFG->wwwroot}[\\w_:\\?=#&@/;.~-]*)[\"'`]%", 'mnet_sso_apply_indirection', $messagehtml);
}
$mail =& get_mailer();
if (!empty($mail->SMTPDebug)) {
echo '<pre>' . "\n";
}
/// We are going to use textlib services here
$textlib = textlib_get_instance();
$supportuser = generate_email_supportuser();
// make up an email address for handling bounces
if (!empty($CFG->handlebounces)) {
$modargs = 'B' . base64_encode(pack('V', $user->id)) . substr(md5($user->email), 0, 16);
$mail->Sender = generate_email_processing_address(0, $modargs);
} else {
$mail->Sender = $supportuser->email;
}
if (is_string($from)) {
// So we can pass whatever we want if there is need
$mail->From = $CFG->noreplyaddress;
$mail->FromName = $from;
} else {
if ($usetrueaddress and $from->maildisplay) {
$mail->From = stripslashes($from->email);
$mail->FromName = fullname($from);
} else {
$mail->From = $CFG->noreplyaddress;
$mail->FromName = fullname($from);
if (empty($replyto)) {
$mail->AddReplyTo($CFG->noreplyaddress, get_string('noreplyname'));
}
}
}
if (!empty($replyto)) {
$mail->AddReplyTo($replyto, $replytoname);
}
$mail->Subject = substr(stripslashes($subject), 0, 900);
$mail->AddAddress(stripslashes($user->email), fullname($user));
$mail->WordWrap = $wordwrapwidth;
// set word wrap
//.........这里部分代码省略.........
开发者ID:nadavkav,项目名称:rtlMoodle,代码行数:101,代码来源:moodlelib.php
示例7: email_to_user
/**
* Send an email to a specified user
*
* @global object
* @global string
* @global string IdentityProvider(IDP) URL user hits to jump to mnet peer.
* @uses SITEID
* @param stdClass $user A {@link $USER} object
* @param stdClass $from A {@link $USER} object
* @param string $subject plain text subject line of the email
* @param string $messagetext plain text version of the message
* @param string $messagehtml complete html version of the message (optional)
* @param string $attachment a file on the filesystem, relative to $CFG->dataroot
* @param string $attachname the name of the file (extension indicates MIME)
* @param bool $usetrueaddress determines whether $from email address should
* be sent out. Will be overruled by user profile setting for maildisplay
* @param string $replyto Email address to reply to
* @param string $replytoname Name of reply to recipient
* @param int $wordwrapwidth custom word wrap width, default 79
* @return bool Returns true if mail was sent OK and false if there was an error.
*/
function email_to_user($user, $from, $subject, $messagetext, $messagehtml = '', $attachment = '', $attachname = '', $usetrueaddress = true, $replyto = '', $replytoname = '', $wordwrapwidth = 79)
{
global $CFG, $FULLME;
if (empty($user) || empty($user->email)) {
mtrace('Error: lib/moodlelib.php email_to_user(): User is null or has no email');
return false;
}
if (!empty($user->deleted)) {
// do not mail delted users
mtrace('Error: lib/moodlelib.php email_to_user(): User is deleted');
return false;
}
if (!empty($CFG->noemailever)) {
// hidden setting for development sites, set in config.php if needed
mtrace('Error: lib/moodlelib.php email_to_user(): Not sending email due to noemailever config setting');
return true;
}
if (!empty($CFG->divertallemailsto)) {
$subject = "[DIVERTED {$user->email}] {$subject}";
$user = clone $user;
$user->email = $CFG->divertallemailsto;
}
// skip mail to suspended users
if (isset($user->auth) && $user->auth == 'nologin') {
return true;
}
if (over_bounce_threshold($user)) {
$bouncemsg = "User {$user->id} (" . fullname($user) . ") is over bounce threshold! Not sending.";
error_log($bouncemsg);
mtrace('Error: lib/moodlelib.php email_to_user(): ' . $bouncemsg);
return false;
}
// If the user is a remote mnet user, parse the email text for URL to the
// wwwroot and modify the url to direct the user's browser to login at their
// home site (identity provider - idp) before hitting the link itself
if (is_mnet_remote_user($user)) {
require_once $CFG->dirroot . '/mnet/lib.php';
$jumpurl = mnet_get_idp_jump_url($user);
$callback = partial('mnet_sso_apply_indirection', $jumpurl);
$messagetext = preg_replace_callback("%({$CFG->wwwroot}[^[:space:]]*)%", $callback, $messagetext);
$messagehtml = preg_replace_callback("%href=[\"'`]({$CFG->wwwroot}[\\w_:\\?=#&@/;.~-]*)[\"'`]%", $callback, $messagehtml);
}
$mail = get_mailer();
if (!empty($mail->SMTPDebug)) {
echo '<pre>' . "\n";
}
$temprecipients = array();
$tempreplyto = array();
$supportuser = generate_email_supportuser();
// make up an email address for handling bounces
if (!empty($CFG->handlebounces)) {
$modargs = 'B' . base64_encode(pack('V', $user->id)) . substr(md5($user->email), 0, 16);
$mail->Sender = generate_email_processing_address(0, $modargs);
} else {
$mail->Sender = $supportuser->email;
}
if (is_string($from)) {
// So we can pass whatever we want if there is need
$mail->From = $CFG->noreplyaddress;
$mail->FromName = $from;
} else {
if ($usetrueaddress and $from->maildisplay) {
$mail->From = $from->email;
$mail->FromName = fullname($from);
} else {
$mail->From = $CFG->noreplyaddress;
$mail->FromName = fullname($from);
if (empty($replyto)) {
$tempreplyto[] = array($CFG->noreplyaddress, get_string('noreplyname'));
}
}
}
if (!empty($replyto)) {
$tempreplyto[] = array($replyto, $replytoname);
}
$mail->Subject = substr($subject, 0, 900);
$temprecipients[] = array($user->email, fullname($user));
$mail->WordWrap = $wordwrapwidth;
// set word wrap
//.........这里部分代码省略.........
开发者ID:hitphp,项目名称:moodle,代码行数:101,代码来源:moodlelib.php
示例8: cron_run
/**
* Cron functions.
*
* @package core
* @subpackage admin
* @copyright 1999 onwards Martin Dougiamas http://dougiamas.com
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
function cron_run()
{
global $DB, $CFG, $OUTPUT;
if (CLI_MAINTENANCE) {
echo "CLI maintenance mode active, cron execution suspended.\n";
exit(1);
}
if (moodle_needs_upgrading()) {
echo "Moodle upgrade pending, cron execution suspended.\n";
exit(1);
}
require_once $CFG->libdir . '/adminlib.php';
require_once $CFG->libdir . '/gradelib.php';
if (!empty($CFG->showcronsql)) {
$DB->set_debug(true);
}
if (!empty($CFG->showcrondebugging)) {
$CFG->debug = DEBUG_DEVELOPER;
$CFG->debugdisplay = true;
}
set_time_limit(0);
$starttime = microtime();
/// increase memory limit
raise_memory_limit(MEMORY_EXTRA);
/// emulate normal session
cron_setup_user();
/// Start output log
$timenow = time();
mtrace("Server Time: " . date('r', $timenow) . "\n\n");
/// Session gc
mtrace("Cleaning up stale sessions");
session_gc();
/// Run all cron jobs for each module
mtrace("Starting activity modules");
get_mailer('buffer');
if ($mods = $DB->get_records_select("modules", "cron > 0 AND ((? - lastcron) > cron) AND visible = 1", array($timenow))) {
foreach ($mods as $mod) {
$libfile = "{$CFG->dirroot}/mod/{$mod->name}/lib.php";
if (file_exists($libfile)) {
include_once $libfile;
$cron_function = $mod->name . "_cron";
if (function_exists($cron_function)) {
mtrace("Processing module function {$cron_function} ...", '');
$pre_dbqueries = null;
$pre_dbqueries = $DB->perf_get_queries();
$pre_time = microtime(1);
if ($cron_function()) {
$DB->set_field("modules", "lastcron", $timenow, array("id" => $mod->id));
}
if (isset($pre_dbqueries)) {
mtrace("... used " . ($DB->perf_get_queries() - $pre_dbqueries) . " dbqueries");
mtrace("... used " . (microtime(1) - $pre_time) . " seconds");
}
/// Reset possible changes by modules to time_limit. MDL-11597
@set_time_limit(0);
mtrace("done.");
}
}
}
}
get_mailer('close');
mtrace("Finished activity modules");
mtrace("Starting blocks");
if ($blocks = $DB->get_records_select("block", "cron > 0 AND ((? - lastcron) > cron) AND visible = 1", array($timenow))) {
// we will need the base class.
require_once $CFG->dirroot . '/blocks/moodleblock.class.php';
foreach ($blocks as $block) {
$blockfile = $CFG->dirroot . '/blocks/' . $block->name . '/block_' . $block->name . '.php';
if (file_exists($blockfile)) {
require_once $blockfile;
$classname = 'block_' . $block->name;
$blockobj = new $classname();
if (method_exists($blockobj, 'cron')) {
mtrace("Processing cron function for " . $block->name . '....', '');
if ($blockobj->cron()) {
$DB->set_field('block', 'lastcron', $timenow, array('id' => $block->id));
}
/// Reset possible changes by blocks to time_limit. MDL-11597
@set_time_limit(0);
mtrace('done.');
}
}
}
}
mtrace('Finished blocks');
//now do plagiarism checks
require_once $CFG->libdir . '/plagiarismlib.php';
plagiarism_cron();
mtrace("Starting quiz reports");
if ($reports = $DB->get_records_select('quiz_report', "cron > 0 AND ((? - lastcron) > cron)", array($timenow))) {
foreach ($reports as $report) {
$cronfile = "{$CFG->dirroot}/mod/quiz/report/{$report->name}/cron.php";
//.........这里部分代码省略.........
开发者ID:vuchannguyen,项目名称:web,代码行数:101,代码来源:cronlib.php
示例9: mtrace
if (!set_field("modules", "lastcron", $timenow, "id", $mod->id)) {
mtrace("Error: could not update timestamp for {$mod->fullname}");
}
}
if (isset($pre_dbqueries)) {
mtrace("... used " . ($PERF->dbqueries - $pre_dbqueries) . " dbqueries");
mtrace("... used " . (microtime(1) - $pre_time) . " seconds");
}
/// Reset possible changes by modules to time_limit. MDL-11597
@set_time_limit(0);
mtrace("done.");
}
}
}
}
get_mailer('close');
mtrace("Finished activity modules");
mtrace("Starting blocks");
if ($blocks = get_records_select("block", "cron > 0 AND (({$timenow} - lastcron) > cron) AND visible = 1")) {
// we will need the base class.
require_once $CFG->dirroot . '/blocks/moodleblock.class.php';
foreach ($blocks as $block) {
$blockfile = $CFG->dirroot . '/blocks/' . $block->name . '/block_' . $block->name . '.php';
if (file_exists($blockfile)) {
require_once $blockfile;
$classname = 'block_' . $block->name;
$blockobj = new $classname();
if (method_exists($blockobj, 'cron')) {
mtrace("Processing cron function for " . $block->name . '....', '');
if ($blockobj->cron()) {
if (!set_field('block', 'lastcron', $timenow, 'id', $block->id)) {
开发者ID:nadavkav,项目名称:MoodleTAO,代码行数:31,代码来源:cron.php
示例10: execute
/**
* Do the job.
* Throw exceptions on errors (the job will be retried).
*/
public function execute()
{
global $CFG, $DB;
$timenow = time();
// Run the auth cron, if any before enrolments
// because it might add users that will be needed in enrol plugins.
$auths = get_enabled_auth_plugins();
mtrace("Running auth crons if required...");
foreach ($auths as $auth) {
$authplugin = get_auth_plugin($auth);
if (method_exists($authplugin, 'cron')) {
mtrace("Running cron for auth/{$auth}...");
$authplugin->cron();
if (!empty($authplugin->log)) {
mtrace($authplugin->log);
}
}
unset($authplugin);
}
// It is very important to run enrol early
// because other plugins depend on correct enrolment info.
mtrace("Running enrol crons if required...");
$enrols = enrol_get_plugins(true);
foreach ($enrols as $ename => $enrol) {
// Do this for all plugins, disabled plugins might want to cleanup stuff such as roles.
if (!$enrol->is_cron_required()) {
continue;
}
mtrace("Running cron for enrol_{$ename}...");
$enrol->cron();
$enrol->set_config('lastcron', time());
}
// Run all cron jobs for each module.
mtrace("Starting activity modules");
get_mailer('buffer');
if ($mods = $DB->get_records_select("modules", "cron > 0 AND ((? - lastcron) > cron) AND visible = 1", array($timenow))) {
foreach ($mods as $mod) {
$libfile = "{$CFG->dirroot}/mod/{$mod->name}/lib.php";
if (file_exists($libfile)) {
include_once $libfile;
$cronfunction = $mod->name . "_cron";
if (function_exists($cronfunction)) {
mtrace("Processing module function {$cronfunction} ...\n", '');
$predbqueries = null;
$predbqueries = $DB->perf_get_queries();
$pretime = microtime(1);
if ($cronfunction()) {
$DB->set_field("modules", "lastcron", $timenow, array("id" => $mod->id));
}
if (isset($predbqueries)) {
mtrace("... used " . ($DB->perf_get_queries() - $predbqueries) . " dbqueries");
mtrace("... used " . (microtime(1) - $pretime) . " seconds");
}
// Reset possible changes by modules to time_limit. MDL-11597.
\core_php_time_limit::raise();
mtrace("done.");
}
}
}
}
get_mailer('close');
mtrace("Finished activity modules");
mtrace("Starting blocks");
if ($blocks = $DB->get_records_select("block", "cron > 0 AND ((? - lastcron) > cron) AND visible = 1", array($timenow))) {
// We will need the base class.
require_once $CFG->dirroot . '/blocks/moodleblock.class.php';
foreach ($blocks as $block) {
$blockfile = $CFG->dirroot . '/blocks/' . $block->name . '/block_' . $block->name . '.php';
if (file_exists($blockfile)) {
require_once $blockfile;
$classname = '\\block_' . $block->name;
$blockobj = new $classname();
if (method_exists($blockobj, 'cron')) {
mtrace("Processing cron function for " . $block->name . '....', '');
if ($blockobj->cron()) {
$DB->set_field('block', 'lastcron', $timenow, array('id' => $block->id));
}
// Reset possible changes by blocks to time_limit. MDL-11597.
\core_php_time_limit::raise();
mtrace('done.');
}
}
}
}
mtrace('Finished blocks');
mtrace('Starting admin reports');
cron_execute_plugin_type('report');
mtrace('Finished admin reports');
mtrace('Starting course reports');
cron_execute_plugin_type('coursereport');
mtrace('Finished course reports');
// Run gradebook import/export/report cron.
mtrace('Starting gradebook plugins');
cron_execute_plugin_type('gradeimport');
cron_execute_plugin_type('gradeexport');
cron_execute_plugin_type('gradereport');
//.........这里部分代码省略.........
开发者ID:janaece,项目名称:globalclassroom4_clean,代码行数:101,代码来源:legacy_plugin_cron_task.php
示例11: send_confirmation_email
/**
* Function to send out registration emails.
*
*/
function send_confirmation_email($fromadmin, $toadmins)
{
global $CFG;
$a = new Object();
$a->fullname = fullname($this);
$a->username = $this->username;
$a->password = $this->password;
$messagehtml = get_string('welcomeemail', 'block_curr_admin', $a);
$messagetext = html_to_text($messagehtml);
$subject = get_string('emailwelcomesubject', 'block_curr_admin');
$this->mailformat = 1;
// Always send HTML version as well
email_to_user($this, $fromadmin, $subject, $messagetext, $messagehtml);
$messagetext = "New registration:\n\n";
$countries = cm_get_list_of_countries();
$objectvars = array('username', 'password', 'firstname', 'lastname', 'email', 'email2', 'address', 'address2', 'city', 'state', 'country', 'postalcode', 'birthdate', 'gender', 'language', 'comments');
foreach ($objectvars as $varname) {
if ($varname == 'country') {
if (isset($countries[$this->{$varname}])) {
$messagetext .= "{$varname}: {$countries[$this->{$varname}]}\n";
} else {
$messagetext .= "{$varname}: {$this->{$varname}}\n";
}
} else {
$messagetext .= "{$varname}: {$this->{$varname}}\n";
}
}
$toaddresses = explode(',', $toadmins);
$mail =& get_mailer();
$mail->Sender = $fromadmin;
$mail->From = $fromadmin;
foreach ($toaddresses as $address) {
$mail->AddAddress($address);
}
$mail->Subject = get_string('new_registration', 'block_curr_admin') . $mail->IsHTML(false);
$mail->Body = "\n{$messagetext}\n";
return $mail->Send();
}
开发者ID:remotelearner,项目名称:elis.cm,代码行数:42,代码来源:user.class.php
示例12: email_send_bcc
/**
* Sends an email to lots of people using BCC.
* @param array $targets List of target user objects (email, name fields
* required)
* @param mixed $from User or string who sent email
* @param string $subject Subject of email
* @param string $html HTML version of email (blank if none)
* @param string $text Plain text version of email
* @param string $showerrortext If set, mtraces errors and includes this
* extra string about where the error was.
* @param bool $ishtml If true, email is in HTML format
* @param bool $viewfullnames If true, these recipients have access to
* see the full name
* @return int Number of emails sent
*/
private static function email_send_bcc($targets, $from, $subject, $html, $text, $showerrortext, $ishtml, $viewfullnames)
{
if (self::DEBUG_VIEW_EMAILS) {
print "<div style='border:1px solid blue; padding:4px;'>";
print "<h3>Bulk email sent</h3>";
print "<ul><li>To: ";
$first = true;
foreach ($targets as $target) {
if ($first) {
$first = false;
} else {
print ', ';
}
print "<strong>{$target->email}</strong>";
}
print "</li><li>Subject: <strong>" . htmlspecialchars($subject) . "</strong></li>";
print $html;
print "<pre style='border-top: 1px solid blue; padding-top: 4px;'>";
print htmlspecialchars($text);
print "</pre></div>";
return;
}
global $CFG;
$emailcount = 0;
// Trim subject length (not sure why but
// email_to_user does); note that I did it more
// aggressively due to use of textlib.
$mail->Subject = core_text::substr($subject, 0, 200);
// Loop through in batches of specified size
$copy = array();
foreach ($targets as $key => $target) {
$copy[$key] = $target;
}
while (count($copy) > 0) {
$batch = array_splice($copy, 0, $CFG->forumng_usebcc);
// Prepare email
$mail = get_mailer();
// From support user
static $supportuser;
if (!$supportuser) {
$supportuser = generate_email_supportuser();
}
$mail->Sender = $supportuser->email;
// Set the From details similar to email_to_user
if ($CFG->forumng_replytouser && $from->maildisplay) {
$mail->From = $from->email;
$mail->FromName = fullname($from, $viewfullnames);
} else {
$mail->From = $CFG->noreplyaddress;
$mail->FromName = fullname($from, $viewfullnames);
}
$mail->ToName = 'Test to name';
$mail->Subject = $subject;
if ($ishtml) {
$mail->IsHTML(true);
$mail->Encoding = 'quoted-printable';
$mail->Body = $html;
$mail->AltBody = "\n{$text}\n";
} else {
$mail->IsHTML(false);
$mail->Body = "\n{$text}\n";
}
foreach ($batch as $user) {
$mail->AddBCC($user->email);
}
$emailcount++;
if (!$mail->Send()) {
$users = '';
foreach ($batch as $user) {
if ($users) {
$users .= ', ';
}
$users .= $user->id;
}
if ($showerrortext) {
mtrace('Error sending email "' . $subject . '": "' . $mail->ErrorInfo . '" (' . $showerrortext . '). Users affected: ' . $users);
}
} else {
// Mail send successful; log all users
foreach ($batch as $user) {
// Note this log entry is in the same format as the
// main mail function
$params = array('other' => array('username' => $user->username, 'subject' => $subject), 'context' => context_system::instance(), 'relateduserid' => $user->id);
$event = \mod_forumng\event\mail_sent::create($params);
$event->trigger();
//.........这里部分代码省略.........
开发者ID:ULCC-QMUL,项目名称:moodle-mod_forumng,代码行数:101,代码来源:mod_forumng_cron.php
示例13: cron_run
/**
* Execute cron tasks
*/
function cron_run()
{
global $DB, $CFG, $OUTPUT;
if (CLI_MAINTENANCE) {
echo "CLI maintenance mode active, cron execution suspended.\n";
exit(1);
}
if (moodle_needs_upgrading()) {
echo "Moodle upgrade pending, cron execution suspended.\n";
exit(1);
}
require_once $CFG->libdir . '/adminlib.php';
if (!empty($CFG->showcronsql)) {
$DB->set_debug(true);
}
if (!empty($CFG->showcrondebugging)) {
set_debugging(DEBUG_DEVELOPER, true);
}
core_php_time_limit::raise();
$starttime = microtime();
// Increase memory limit
raise_memory_limit(MEMORY_EXTRA);
// Emulate normal session - we use admin accoutn by default
cron_setup_user();
// Start output log
$timenow = time();
mtrace("Server Time: " . date('r', $timenow) . "\n\n");
// Run all scheduled tasks.
while (!\core\task\manager::static_caches_cleared_since($timenow) && ($task = \core\task\manager::get_next_scheduled_task($timenow))) {
mtrace("Execute scheduled task: " . $task->get_name());
cron_trace_time_and_memory();
$predbqueries = null;
$predbqueries = $DB->perf_get_queries();
$pretime = microtime(1);
try {
get_mailer('b
|
请发表评论