Overview

Packages

  • CONTENIDO
  • Core
    • Authentication
    • Backend
    • Cache
    • CEC
    • Chain
    • ContentType
    • Database
    • Debug
    • Exception
    • Frontend
      • Search
      • URI
      • Util
    • GenericDB
      • Model
    • GUI
      • HTML
    • I18N
    • LayoutHandler
    • Log
    • Security
    • Session
    • Util
    • Validation
    • Versioning
    • XML
  • Module
    • ContentRssCreator
    • ContentSitemapHtml
    • ContentSitemapXml
    • ContentUserForum
    • NavigationTop
    • ScriptCookieDirective
  • mpAutoloaderClassMap
  • None
  • Plugin
    • ContentAllocation
    • CronjobOverview
    • FormAssistant
    • FrontendLogic
    • FrontendUsers
    • Linkchecker
    • ModRewrite
    • Newsletter
    • Repository
      • FrontendNavigation
      • KeywordDensity
    • SearchSolr
    • SmartyWrapper
    • UrlShortener
    • UserForum
    • Workflow
  • PluginManager
  • Setup
    • Form
    • GUI
    • Helper
      • Environment
      • Filesystem
      • MySQL
      • PHP
    • UpgradeJob
  • Smarty
    • Cacher
    • Compiler
    • Config
    • Debug
    • PluginsBlock
    • PluginsFilter
    • PluginsFunction
    • PluginsInternal
    • PluginsModifier
    • PluginsModifierCompiler
    • PluginsShared
    • Security
    • Template
    • TemplateResources
  • Swift
    • ByteStream
    • CharacterStream
    • Encoder
    • Events
    • KeyCache
    • Mailer
    • Mime
    • Plugins
    • Transport

Classes

  • Swift_FailoverTransport
  • Swift_LoadBalancedTransport
  • Swift_MailTransport
  • Swift_Plugins_Loggers_ArrayLogger
  • Swift_Plugins_Loggers_EchoLogger
  • Swift_SendmailTransport
  • Swift_SmtpTransport
  • Swift_Transport_AbstractSmtpTransport
  • Swift_Transport_Esmtp_Auth_CramMd5Authenticator
  • Swift_Transport_Esmtp_Auth_LoginAuthenticator
  • Swift_Transport_Esmtp_Auth_PlainAuthenticator
  • Swift_Transport_Esmtp_AuthHandler
  • Swift_Transport_EsmtpTransport
  • Swift_Transport_FailoverTransport
  • Swift_Transport_LoadBalancedTransport
  • Swift_Transport_MailTransport
  • Swift_Transport_SendmailTransport
  • Swift_Transport_SimpleMailInvoker
  • Swift_Transport_StreamBuffer

Interfaces

  • Swift_Plugins_Logger
  • Swift_Plugins_Pop_Pop3Exception
  • Swift_Transport
  • Swift_Transport_Esmtp_Authenticator
  • Swift_Transport_EsmtpHandler
  • Swift_Transport_IoBuffer
  • Swift_Transport_MailInvoker
  • Swift_Transport_SmtpAgent
  • Swift_TransportException
  • Overview
  • Package
  • Function
  • Todo
  • Download
  1: <?php
  2: 
  3: /*
  4:  * This file is part of SwiftMailer.
  5:  * (c) 2004-2009 Chris Corbyn
  6:  *
  7:  * For the full copyright and license information, please view the LICENSE
  8:  * file that was distributed with this source code.
  9:  */
 10: 
 11: /**
 12:  * Reduces network flooding when sending large amounts of mail.
 13:  * @package Swift
 14:  * @subpackage Plugins
 15:  * @author Chris Corbyn
 16:  */
 17: class Swift_Plugins_AntiFloodPlugin implements Swift_Events_SendListener, Swift_Plugins_Sleeper
 18: {
 19:     /**
 20:      * The number of emails to send before restarting Transport.
 21:      * @var int
 22:      * @access private
 23:      */
 24:     private $_threshold;
 25: 
 26:     /**
 27:      * The number of seconds to sleep for during a restart.
 28:      * @var int
 29:      * @access private
 30:      */
 31:     private $_sleep;
 32: 
 33:     /**
 34:      * The internal counter.
 35:      * @var int
 36:      * @access private
 37:      */
 38:     private $_counter = 0;
 39: 
 40:     /**
 41:      * The Sleeper instance for sleeping.
 42:      * @var Swift_Plugins_Sleeper
 43:      * @access private
 44:      */
 45:     private $_sleeper;
 46: 
 47:     /**
 48:      * Create a new AntiFloodPlugin with $threshold and $sleep time.
 49:      * @param int                   $threshold
 50:      * @param int                   $sleep     time
 51:      * @param Swift_Plugins_Sleeper $sleeper   (not needed really)
 52:      */
 53:     public function __construct($threshold = 99, $sleep = 0, Swift_Plugins_Sleeper $sleeper = null)
 54:     {
 55:         $this->setThreshold($threshold);
 56:         $this->setSleepTime($sleep);
 57:         $this->_sleeper = $sleeper;
 58:     }
 59: 
 60:     /**
 61:      * Set the number of emails to send before restarting.
 62:      * @param int $threshold
 63:      */
 64:     public function setThreshold($threshold)
 65:     {
 66:         $this->_threshold = $threshold;
 67:     }
 68: 
 69:     /**
 70:      * Get the number of emails to send before restarting.
 71:      * @return int
 72:      */
 73:     public function getThreshold()
 74:     {
 75:         return $this->_threshold;
 76:     }
 77: 
 78:     /**
 79:      * Set the number of seconds to sleep for during a restart.
 80:      * @param int $sleep time
 81:      */
 82:     public function setSleepTime($sleep)
 83:     {
 84:         $this->_sleep = $sleep;
 85:     }
 86: 
 87:     /**
 88:      * Get the number of seconds to sleep for during a restart.
 89:      * @return int
 90:      */
 91:     public function getSleepTime()
 92:     {
 93:         return $this->_sleep;
 94:     }
 95: 
 96:     /**
 97:      * Invoked immediately before the Message is sent.
 98:      * @param Swift_Events_SendEvent $evt
 99:      */
100:     public function beforeSendPerformed(Swift_Events_SendEvent $evt)
101:     {
102:     }
103: 
104:     /**
105:      * Invoked immediately after the Message is sent.
106:      * @param Swift_Events_SendEvent $evt
107:      */
108:     public function sendPerformed(Swift_Events_SendEvent $evt)
109:     {
110:         ++$this->_counter;
111:         if ($this->_counter >= $this->_threshold) {
112:             $transport = $evt->getTransport();
113:             $transport->stop();
114:             if ($this->_sleep) {
115:                 $this->sleep($this->_sleep);
116:             }
117:             $transport->start();
118:             $this->_counter = 0;
119:         }
120:     }
121: 
122:     /**
123:      * Sleep for $seconds.
124:      * @param int $seconds
125:      */
126:     public function sleep($seconds)
127:     {
128:         if (isset($this->_sleeper)) {
129:             $this->_sleeper->sleep($seconds);
130:         } else {
131:             sleep($seconds);
132:         }
133:     }
134: }
135: 
CMS CONTENIDO 4.9.7 API documentation generated by ApiGen