Sindbad~EG File Manager

Current Path : /home/copmadinaarea/thecopmadinaarea.org/portal/cron/
Upload File :
Current File : /home/copmadinaarea/thecopmadinaarea.org/portal/cron/process_emails.php

<?php
/**
 * Email Queue Processor
 * This script processes pending emails in the queue
 * Run this script via cron job every few minutes to send queued emails
 */

// Prevent direct web access
if (php_sapi_name() !== 'cli' && !isset($_GET['manual'])) {
    die('This script should be run from command line or with ?manual=1 parameter');
}

require_once __DIR__ . '/../config/config.php';
require_once __DIR__ . '/../classes/EmailService.php';

// Set time limit for long-running process
set_time_limit(300); // 5 minutes

// Log start
$logFile = __DIR__ . '/../logs/email_processor.log';
$logDir = dirname($logFile);
if (!is_dir($logDir)) {
    mkdir($logDir, 0755, true);
}

function logMessage($message) {
    global $logFile;
    $timestamp = date('Y-m-d H:i:s');
    file_put_contents($logFile, "[$timestamp] $message\n", FILE_APPEND | LOCK_EX);
    
    // Also output to console if running via CLI
    if (php_sapi_name() === 'cli') {
        echo "[$timestamp] $message\n";
    }
}

try {
    logMessage("Email processor started");
    
    $emailService = new EmailService();
    
    if (!$emailService->isEnabled()) {
        logMessage("Email system is disabled. Exiting.");
        exit(0);
    }
    
    // Process up to 50 emails per run
    $processed = $emailService->processPendingEmails(50);
    
    logMessage("Processed $processed emails");
    
    // Get current stats
    $stats = $emailService->getEmailStats();
    logMessage("Queue stats - Total: {$stats['total']}, Pending: {$stats['pending']}, Sent: {$stats['sent']}, Failed: {$stats['failed']}");
    
    logMessage("Email processor completed successfully");
    
} catch (Exception $e) {
    logMessage("Error in email processor: " . $e->getMessage());
    logMessage("Stack trace: " . $e->getTraceAsString());
    exit(1);
}

// If running manually via web, show results
if (isset($_GET['manual'])) {
    echo "<h2>Email Processor Results</h2>";
    echo "<p>Processed: $processed emails</p>";
    echo "<p>Check logs at: " . htmlspecialchars($logFile) . "</p>";
    echo "<p><a href='../modules/email/index.php'>← Back to Email Management</a></p>";
}
?>

Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists