[ Mini Kiebo ]
Server: Windows NT DESKTOP-5B8S0D4 6.2 build 9200 (Windows 8 Professional Edition) i586
Path:
D:
/
Backup
/
14082024
/
Data
/
htdocs
/
htdocs
/
ojs
/
248
/
lib
/
pkp
/
classes
/
mail
/
[
Home
]
File: MassMail.inc.php
<?php /** * @file classes/mail/MassMail.inc.php * * Copyright (c) 2013-2019 Simon Fraser University * Copyright (c) 2000-2019 John Willinsky * Distributed under the GNU GPL v2. For full terms see the file docs/COPYING. * * @class MassMail * @ingroup mail * * @brief Helper class to send mass emails */ import ('classes.mail.MailTemplate'); class MassMail extends MailTemplate { var $callback; var $frequency; /** * Constructor */ function MassMail($emailKey = null, $locale = null, $enableAttachments = null) { parent::MailTemplate($emailKey, $locale, $enableAttachments); $this->callback = null; $this->frequency = 10; } /** * Set the callback function (see PHP's callback pseudotype); this * function will be called for every n emails sent, according to the * frequency. * @param $callback callback */ function setCallback(&$callback) { $this->callback =& $callback; } /** * Set the frequency at which the callback will be called (i.e. each * n emails). */ function setFrequency($frequency) { $this->frequency = $frequency; } /** * Send the email. * @return boolean */ function send() { @set_time_limit(0); $realRecipients = $this->getRecipients(); $realSubject = $this->getSubject(); $realBody = $this->getBody(); $index = 0; $success = true; $max = count($realRecipients); foreach ($realRecipients as $recipient) { $this->clearAllRecipients(); $this->addRecipient($recipient['email'], $recipient['name']); $this->setSubject($realSubject); $this->setBody($realBody); $success = $success && MailTemplate::send(false); $index++; if ($this->callback && ($index % $this->frequency) == 0) call_user_func($this->callback, $index, $max); } $this->setRecipients($realRecipients); return $success; } } ?>