<?php
/*
* phpMyVisites : website statistics and audience measurements
* Copyright (C) 2002 - 2006
* http://www.phpmyvisites.net/
* phpMyVisites is free software (license GNU/GPL)
* Authors : phpMyVisites team
*/
// $Id: SendMail.class.php 82 2006-09-14 17:40:31Z matthieu_ $
require_once INCLUDE_PATH."/core/include/ViewModule.class.php";
require_once INCLUDE_PATH."/core/include/PmvConfig.class.php";
require_once INCLUDE_PATH."/libs/Cache/Lite.php";
require_once INCLUDE_PATH."/core/views/ViewVisitsRss.class.php";
require_once INCLUDE_PATH."/core/include/myMailer.class.php";
require_once INCLUDE_PATH."/core/include/UserConfigDb.class.php";
class SendMail extends Module
{
var $defaultAction = "showAll";
function SendMail()
{
parent::Module();
}
function showAll()
{
$this->tpl->setMainTemplate("structure_mail.tpl");
$this->request->setModuleName( 'view_visits_rss');
$allSiteArchive = DataModel::getSites();
/**
* Cache Lite
*/
$options = array(
'cacheDir' => DIR_CACHE_MAIL,
'lifeTime' => CACHE_MAIL_LIFETIME
);
$Cache_Lite = new Cache_Lite($options);
$lang =& Lang::getInstance();
// case update to 2.2RC1 without executing global info
if(!defined('INTERFACE_DEFAULT_LANG')) define('INTERFACE_DEFAULT_LANG', 'en-utf-8.php');
$lang->setNewLang( INTERFACE_DEFAULT_LANG );
/**
* Compute mails
*/
$o_config =& PmvConfig::getInstance();
foreach($allSiteArchive as $infoSite)
{
/**
* php Mailer
*/
$mail = new MyMailer();
$mail->IsHTML(true);
$imgUrl = INCLUDE_PATH . "/themes/default/images/phpmv.png";
$mail->AddEmbeddedImage($imgUrl, "my-attach", $GLOBALS['lang']['logo_description'], "base64", "image/png");
$uniqCacheId = md5(serialize($infoSite).date("Y-m-d")) . '.mail';
// Test if thereis a valide cache for this id
if (true)//!$allData = $Cache_Lite->get($uniqCacheId))
{
$o_mod = new ViewVisitsRss($infoSite);
$this->request->date=getDateFromTimestamp(time()- 86400);
$o_mod->init($this->request);
$dateLiteral = $o_mod->data->archive->getLiteralDate();
$body = '<html xml:lang="fr" >
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
</head>
<body>
';
$body .= $o_mod->showAll( true, true);
$body .= '</body></html>';
$textBody = strip_tags($body);
$subject = vsprintf($GLOBALS['lang']['rss_titre'],
array($infoSite->getName(), $dateLiteral));
print("<br>Subject : $subject<hr>");
print("<br>Content : $body<hr>");
//$Cache_Lite->save($body);
}
$mail->Subject = $subject;
$mail->Body = $body;
$mail->AltBody = $textBody;
$mail->CharSet = $GLOBALS['lang']['charset'];
$user = new UserConfigDb();
$groups = $user->getGroups();
$users = array_merge(
array(
0 => array( 'email' => SU_EMAIL,
'alias' => 'phpMyVisites Administrator',
'send_mail' => (SEND_MAIL=="yes" ? 1 : 0)
),
),
$user->getUserByGroup( 1, $infoSite->getId() ),
$user->getUserByGroup( 2, $infoSite->getId() )
);
// we send all emails once
$emailsToSend_infos = array(
'object' => $mail,
'to' => array(
// email, alias
)
);
// add recipients for the mail
foreach($users as $userInfo)
{
//print_r($userInfo);
if(!empty($userInfo['email']) && $userInfo['send_mail'] == 1)
{
$emailsToSend_infos['to'][] = array( $userInfo['email'], $userInfo['alias'] );
}
}
$emailsToSend[] = $emailsToSend_infos;
}
// send all emails
foreach($emailsToSend as $currMail)
{
$mail =& $currMail['object'];
foreach($currMail['to'] as $recipient)
{
$mail->AddAddress($recipient[0], $recipient[1] );
if(!@$mail->Send())
{
echo "<u><b>There was an error sending the message to ".$userInfo['email']."</u></b><br>";
}
else
{
echo "<u><b>Message was sent successfully to ".$userInfo['email']."</u></b><br>";
}
$mail->ClearAddresses();
}
}
}
}
?>