public function stop()
 {
     EmailBackgroundProcess::killProcess($this->getPId());
     Symphony::Database()->query('DROP TABLE IF EXISTS `tbl_tmp_email_newsletters_sent_' . $this->getId() . '`');
     $this->setStatus('stopped');
     return true;
 }
require_once DOCROOT . '/symphony/lib/boot/bundle.php';
//Inside bundle.php, the error_reporting is set again, but we don't want to be stopped by any other than fatal errors.
error_reporting(0);
require_once DOCROOT . '/symphony/lib/core/class.symphony.php';
require_once DOCROOT . '/symphony/lib/core/class.administration.php';
GenericErrorHandler::$enabled = false;
// ENM Specific includes & defines
define_safe('ENM_DIR', DOCROOT . '/extensions/email_newsletter_manager');
define_safe('ETM_DIR', DOCROOT . '/extensions/email_template_manager');
require_once ENM_DIR . '/lib/class.sendermanager.php';
require_once ENM_DIR . '/lib/class.recipientgroupmanager.php';
require_once ENM_DIR . '/lib/class.emailnewslettermanager.php';
require_once ENM_DIR . '/lib/class.emailbackgroundprocess.php';
// Needed to __construct() the Symphony class.
// This in turn is needed to get the Symphony::Database() functions working.
$thing = Administration::instance();
try {
    $newsletter = EmailNewsletterManager::create($newsletter_id);
    if (is_a($newsletter, 'EmailNewsletter')) {
        $newsletter->setPId(getmypid());
        $sending_settings = $newsletter->getSender()->about();
        if ($newsletter->sendBatch($process_auth) != 'completed') {
            time_sleep_until($start_time + $sending_settings['throttle-time']);
            EmailBackgroundProcess::spawnProcess($newsletter_id, $process_auth);
        }
    } else {
        throw new Exception('Newsletter with id: ' . $newsletter_id . ' not found.');
    }
} catch (Exception $e) {
    file_put_contents(DOCROOT . '/manifest/newsletter-log.txt', '[' . DateTimeObj::get('Y/m/d H:i:s') . '] newsletter-id: ' . $newsletter_id . ' - ' . $e->getMessage() . "\r\n", FILE_APPEND);
}