"smtp.1und1.de", 'secure' => true, 'auth' => true, 'port' => 465, 'from' => "smtp@global-cube.de", 'username' => "smtp@global-cube.de", 'password' => "gcbssmtp");
$config = parse_ini_file(dirname(__FILE__) . "/../../GAPS.ini");
$smtpConfXml = getSmtpConfFromIni($config);
function checkProtocolDirectory($path, $all = false)
{
$result = array();
$protDir = dir($path);
while ($filename = $protDir->read()) {
if (!preg_match('/\.log$/i', $filename))
continue;
$log = new Logfile("{$path}\\{$filename}");
if ($all || $log->ErrorLevel < 3 || $log->LastChangedDays >= 4) {
$result[] = $log;
}
}
return $result;
}
function getSmtpConfFromIni($config) {
$conf = array();
$conf['host'] = (@$config['SMTP_FEHLERBERICHT'] != "N") ? $config['SMTP_HOST'] : "";
$conf['port'] = $config['SMTP_PORT'];
$conf['from'] = $config['SMTP_FROM'];
$conf['username'] = $config['SMTP_USER'];
$conf['password'] = $config['SMTP_PW'];
$conf['secure'] = ($config['SMTP_SSL'] == "J");
$conf['auth'] = ($conf['username'] != "");
return $conf;
}
/**
* @param $mail PHPMailer
* @param $conf array
* @param $mailFrom string
* @return bool
*/
function setSmtpConf($mail, $conf, $mailFrom) {
$mail->IsSMTP();
$mail->Host = $conf['host'];
$mail->SMTPAuth = $conf['auth'];
$mail->Port = $conf['port'];
$mail->Username = $conf['username'];
$mail->Password = $conf['password'];
$mail->SMTPSecure = ($conf['secure']) ? "ssl" : false;
$mail->Sender = '';
$mail->SetFrom($conf['from'], $mailFrom);
//$mail->SMTPDebug = true;
return true;
}
function mailFormat($list) {
$result = "";
$addresses = explode(";", $list);
foreach ($addresses as $address) {
$result .= "{$address}
";
}
return $result;
}
function sendMail($logs, $mailFrom)
{
$today = date("d.m.Y");
$total = count($logs);
ob_start();
include('fehlerbericht_template.php');
$body = ob_get_clean();
$mail = new PHPMailer();
$mail->AddAddress('fehlerbericht@global-cube.de', 'Global Cube');
$mail->Subject = "{$mailFrom}: Fehlerbericht vom {$today}, {$total} Fehler";
$mail->AltBody = json_encode($logs);
$mail->MsgHTML($body);
foreach ($logs as $logfile) {
if ($logfile->Type == "Modell") {
$mail->AddAttachment($logfile->Filename);
}
}
if (send($mail, $mailFrom)) {
echo " Fehlerbericht gesendet!\r\n";
}
}
/**
* @param $mail PHPMailer
* @param $mailFrom string
* @return bool
*/
function send ($mail, $mailFrom) {
global $smtpConfDefault;
global $smtpConfXml;
setSmtpConf($mail, $smtpConfDefault, $mailFrom);
if ($mail->Send()) {
$mail->SmtpClose();
return true;
}
$mail->SmtpClose();
sleep(10);
$mail->Port = 25;
$mail->SMTPSecure = false;
if ($mail->Send()) {
$mail->SmtpClose();
return true;
}
$mail->SmtpClose();
sleep(10);
if ($smtpConfXml['host']!="") {
setSmtpConf($mail, $smtpConfXml, $mailFrom);
if ($mail->Send()) {
$mail->SmtpClose();
return true;
}
$mail->SmtpClose();
}
echo " Fehler im Mailversand: " . $mail->ErrorInfo . "\r\n";
return false;
}
function sendStatusMail($mailFrom, $startTime, $endTime, $errorCount, $batchFile, $attachments) {
global $config;
$mail = new PHPMailer();
$mail->AddAddress('status@global-cube.de', 'Global Cube');
$today = date("Y-m-d");
$content = array('subject' => "{$mailFrom};{$startTime};{$endTime};{$today};{$errorCount};{$batchFile}");
$mail->Subject = $content['subject'];
$mail->isHTML(false);
$mail->Body = "[]";
foreach($attachments as $key => $file) {
if (file_exists($file)) {
$content[$key] = file_get_contents($file);
$mail->AddAttachment($file);
}
}
if (send($mail, $mailFrom)) {
echo " Statusbericht gesendet!\r\n";
} else {
$opts = array('http' =>
array(
'method' => 'POST',
'header' => "Content-type: application/json\r\n",
'content' => json_encode($content),
'timeout' => 60
)
);
if (isset($config['PROXY'])) {
$opt['http']['proxy'] = $config['PROXY'];
$opt['http']['request_fulluri'] = true;
}
$context = stream_context_create($opts);
$result = file_get_contents('http://dev.global-cube.de/statusmail/', false, $context, -1, 40000);
echo " " . $result;
}
return true;
}
function checkStarterLogs($path, $dirMatch)
{
$today = date("d.m.Y");
$result = array();
$protDir = dir($path);
while ($filename = $protDir->read()) {
if (!preg_match('/\.' . $dirMatch . '\.log$/i', $filename))
continue;
foreach (file("{$path}\\{$filename}") as $line) {
if (strpos($line, $today)) {
$result[] = json_decode($line);
}
}
}
return $result;
}
function checkStarter($path)
{
$result = array();
$logPath = $path . "\\logs";
$protDir = dir($logPath);
while ($filename = $protDir->read()) {
if (!preg_match('/\.log$/i', $filename) || $filename == "gcstarter.log") {
continue;
}
$result[$filename] = json_decode("[" . implode(",", file("{$logPath}\\{$filename}")) . "]");
}
$result['gcstarter.xml'] = file_get_contents($path . "\\config\gcstarter.xml");
return $result;
}
function sendUpdateMail($logs)
{
global $smtpConfDefault;
global $smtpConfXml;
global $config;
$today = date("d.m.Y");
ob_start();
include('statusbericht_template.php');
$body = ob_get_clean();
$mail = new PHPMailer();
$mail->AddAddress($config['STATUSBERICHT']);
$mail->Subject = "{$config['KUNDE']} - Kontenaktualisierung GAPS";
$mail->MsgHTML($body);
if (send($mail, "Global Cube")) {
echo " Updatebericht gesendet!\r\n";
return true;
}
return false;
}