Beispiel #1
0
    return $Module->handleError(eZError::KERNEL_NOT_AVAILABLE, 'kernel');
}
$mode = $Params['Mode'] == "text" ? "txt" : "html";
$ini = eZINI::instance('site.ini');
$site_url = $ini->variable('SiteSettings', 'SiteURL');
$url = "http://" . $site_url . "/" . $node->mainNode()->urlAlias() . "/(preview)/nl";
$cmd = "/usr/local/bin/premailer -r --mode {$mode} " . escapeshellarg($url) . " 2>&1";
exec($cmd, $output, $return_var);
$output = implode("\n", $output);
if ($return_var != 0) {
    $output = "Error executing command: {$cmd}\n\n{$output}";
}
$content = $mode == "txt" ? nl2br($output) : $output;
if ($Module->isCurrentAction('SendPreview')) {
    $email = $Module->actionParameter('EmailAddress');
    if (!eZMail::validate($email)) {
        $http->setSessionVariable('PreviewInvalidReceiver', $email);
    } else {
        try {
            $data_map = $node->DataMap();
            $subject = $data_map['subject']->toString();
            jajSmtpTransport::send($email, $subject, $output);
            $http->setSessionVariable('PreviewEmailSent', $email);
        } catch (Exception $e) {
            $http->setSessionVariable('PreviewSendEmailFailed', $e->getMessage());
        }
    }
    return $Module->redirectTo($Module->functionURI("newsletter") . "/" . $node->mainNodeID());
}
echo $content;
eZExecution::cleanExit();
<?php

$cli->output('Delivering newsletters ');
// Fetch settings
$newsletter_ini = eZINI::instance('jaj_newsletter.ini');
$site_ini = eZINI::instance('site.ini');
$root_node_id = $newsletter_ini->variable('NewsletterSettings', 'RootFolderNodeId');
$batch_limit = $newsletter_ini->variable('NewsletterDelivery', 'BatchLimit');
$site_url = $site_ini->variable('SiteSettings', 'SiteURL');
$mail_transport = jajSmtpTransport::mailTransport();
$charset = jajSmtpTransport::charset();
$from_email = new ezcMailAddress($newsletter_ini->variable('NewsletterSettings', 'FromEmail'), $newsletter_ini->variable('NewsletterSettings', 'FromName'), $charset);
$reply_email = new ezcMailAddress($newsletter_ini->variable('NewsletterSettings', 'ReplyEmail'), '', $charset);
if (!$batch_limit) {
    $batch_limit = 1;
}
$time_limit = 60 * 10;
// 10 minutes, should be lover than cron job
$start_time = time();
$pendingNewsletters = eZContentObjectTreeNode::subTreeByNodeID(array('Limit' => 10, 'ClassFilterType' => 'include', 'ClassFilterArray' => array('jaj_newsletter'), 'AttributeFilter' => array(array('jaj_newsletter/status', '=', 'in progress'))), $root_node_id);
foreach ($pendingNewsletters as $newsletter) {
    $cli->output('Delivering newsletter: ' . $newsletter->getName() . ' (ContentObjectID: ' . $newsletter->ContentObjectID . ')');
    $cli->output('Batch limit left: ' . $batch_limit);
    $object_id = $newsletter->ContentObjectID;
    $url_alias = $newsletter->urlAlias();
    $url_newsletter = "http://" . $site_url . "/" . $url_alias . "/(generate)/nl/(uuid)/";
    $data_map = $newsletter->DataMap();
    $subject = $data_map['subject']->toString();
    $deliveries = jajNewsletterDelivery::fetchDeliveriesByContentobjectIDAndState($object_id, 'pending', $batch_limit, 0, true);
    foreach ($deliveries as $delivery) {
        $batch_limit--;