Open Monograph Press  3.3.0
MassMail.inc.php
1 <?php
2 
17 import ('lib.pkp.classes.mail.MailTemplate');
18 
19 class MassMail extends MailTemplate {
20  var $callback;
22 
26  function __construct($emailKey = null, $locale = null) {
27  parent::__construct($emailKey, $locale);
28  $this->callback = null;
29  $this->frequency = 10;
30  }
31 
38  function setCallback(&$callback) {
39  $this->callback =& $callback;
40  }
41 
47  $this->frequency = $frequency;
48  }
49 
54  function send() {
55  @set_time_limit(0);
56 
57  $realRecipients = $this->getRecipients();
58  $realSubject = $this->getSubject();
59  $realBody = $this->getBody();
60 
61  $index = 0;
62  $success = true;
63  $max = count($realRecipients);
64  foreach ($realRecipients as $recipient) {
65  $this->clearAllRecipients();
66 
67  $this->addRecipient($recipient['email'], $recipient['name']);
68  $this->setSubject($realSubject);
69  $this->setBody($realBody);
70 
71  $success = $success && MailTemplate::send(false);
72  $index++;
73  if ($this->callback && ($index % $this->frequency) == 0) call_user_func($this->callback, $index, $max);
74  }
75  $this->setRecipients($realRecipients);
76  return $success;
77  }
78 }
79 
80 
MassMail\$callback
$callback
Definition: MassMail.inc.php:20
MassMail\send
send()
Definition: MassMail.inc.php:54
Mail\clearAllRecipients
clearAllRecipients()
Definition: Mail.inc.php:206
Mail\setSubject
setSubject($subject)
Definition: Mail.inc.php:366
MassMail\setFrequency
setFrequency($frequency)
Definition: MassMail.inc.php:46
Mail\getSubject
getSubject()
Definition: Mail.inc.php:374
Mail\setBody
setBody($body)
Definition: Mail.inc.php:382
MailTemplate
Subclass of Mail for mailing a template email.
Definition: MailTemplate.inc.php:21
MassMail\setCallback
setCallback(&$callback)
Definition: MassMail.inc.php:38
MassMail
Helper class to send mass emails.
Definition: MassMail.inc.php:19
MassMail\$frequency
$frequency
Definition: MassMail.inc.php:21
Mail\getRecipients
getRecipients()
Definition: Mail.inc.php:115
MailTemplate\send
send()
Definition: MailTemplate.inc.php:216
Mail\setRecipients
setRecipients($recipients)
Definition: Mail.inc.php:123
Mail\addRecipient
addRecipient($email, $name='')
Definition: Mail.inc.php:63
MailTemplate\$locale
$locale
Definition: MailTemplate.inc.php:44
MassMail\__construct
__construct($emailKey=null, $locale=null)
Definition: MassMail.inc.php:26
Mail\getBody
getBody()
Definition: Mail.inc.php:390
MailTemplate\$emailKey
$emailKey
Definition: MailTemplate.inc.php:38