diff options
Diffstat (limited to 'utils/mail.php')
-rw-r--r-- | utils/mail.php | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/utils/mail.php b/utils/mail.php index 866bad4..e681d21 100644 --- a/utils/mail.php +++ b/utils/mail.php @@ -22,4 +22,72 @@ class Email { } } +class _Mailinglist { + public $mailinglist = array(); + public $subj_prefix; + public $sender; + public $replyto; + public $footer; + + public function add($email) { + $key = $email->email; + if(array_key_exists($key, $this->mailinglist)) return false; + $this->mailinglist[$key] = $email; + return true; + } + + public function remove($email) { + if(array_key_exists($email, $this->mailinglist)) { + unset($this->mailinglist[$email]); + return true; + } + return false; + } + + public function postSingle($email, $subject, $message) + { + $subject = "[".$this->subj_prefix."] " . $subject; + $message .= "\n\n".$this->footer; + $email->send($subject, $message, $this->sender, $this->replyto); + } + + public function post($subject, $message) + { + $sz = sizeof($this->mailinglist); + + echo "<div style=\"text-align: center; padding-top: 120px; padding-bottom: 100px; position: absolute; top: 25%; left: 0px; width: 99.4%; height: 150px; border: solid #0000ff 3px; background: #fff; color: #000;\">Sending ". $sz ." mails <br/>\n<"; + ob_flush(); + flush(); + + $num = 0; + $lvl = 0; + $steps = floor($sz / 10) + 1; + + foreach($this->mailinglist as $email) { + + $this->postSingle($email, $ubject, $message); + + $pct = $num / $sz * 100; + if($pct >= $lvl) { + printf("<font style=\"font-size: 9px;\">%.0f%%</font>", $lvl); + $lvl += 100/$steps; + } else { + echo "."; + } + ob_flush(); + flush(); + $num++; + } + echo "<font style=\"font-size: 9px;\">[100%]</font>>\n<br/>done<br/>\n"; + echo "<a style=\"font-size: 20px; font-weight: bold;\" href=\"?page=admin>[CLOSE]</a>"; + echo "</div>\n"; + ob_flush(); + flush(); + } + + public function _Mailinglist() + { + } +} + ?>
\ No newline at end of file |