HEX
Server: LiteSpeed
System: Linux s1049.use1.mysecurecloudhost.com 4.18.0-477.27.2.lve.el8.x86_64 #1 SMP Wed Oct 11 12:32:56 UTC 2023 x86_64
User: xedaptot (3356)
PHP: 8.3.31
Disabled: NONE
Upload Files
File: /home/xedaptot/hi.naniguide.com/debug_server2.php
<?php

require_once 'vendor/autoload.php';

$app = require_once 'bootstrap/app.php';
$kernel = $app->make(Illuminate\Contracts\Console\Kernel::class);
$kernel->bootstrap();

$server2 = \App\Models\ReplyServer::find(2);
if (!$server2) {
    echo "Server #2 not found\n";
    exit;
}

echo "=== SERVER #2 DETAILS ===\n";
echo "Name: " . $server2->name . "\n";
echo "Protocol: " . $server2->protocol . "\n";
echo "Hostname: " . $server2->hostname . "\n";
echo "Port: " . $server2->port . "\n";
echo "Encryption: " . $server2->encryption . "\n";
echo "Username: " . $server2->username . "\n";
echo "Active: " . ($server2->active ? 'YES' : 'NO') . "\n";
echo "Validate SSL: " . ($server2->validate_ssl ? 'YES' : 'NO') . "\n";

echo "\n=== BUILD CONNECTION STRING ===\n";
$hostname = $server2->hostname;
$port = $server2->port;
$encryption = $server2->encryption;
$mailbox = $server2->mailbox;
$validateSsl = $server2->validate_ssl;
$protocol = strtolower((string) $server2->protocol);
if (!in_array($protocol, ['imap', 'pop3'], true)) {
    $protocol = 'imap';
}

$connectionString = "{{$hostname}:{$port}";

if ($protocol === 'pop3') {
    $connectionString .= '/pop3';
} else {
    $connectionString .= '/imap';
}

$useSsl = false;
if ($encryption === 'ssl') {
    $useSsl = true;
} elseif ($encryption === 'tls') {
    $useSsl = false;
} elseif ($encryption === 'none' || empty($encryption)) {
    $useSsl = in_array($port, [993, 465, 995]);
}

if ($useSsl) {
    $connectionString .= '/ssl';
} elseif ($encryption === 'tls') {
    $connectionString .= '/tls';
}

if (!$validateSsl && ($useSsl || $encryption === 'tls')) {
    $connectionString .= '/novalidate-cert';
}

$connectionString .= '}' . $mailbox;

echo "Connection string: " . $connectionString . "\n";

echo "\n=== TEST CONNECTION ===\n";
$connection = @imap_open($connectionString, $server2->username, $server2->password, NULL, 1);
if ($connection) {
    echo "✅ Manual connection SUCCESS\n";
    imap_close($connection);
} else {
    $lastError = (string) (imap_last_error() ?: '');
    $errors = imap_errors();
    $alerts = imap_alerts();
    $errorsText = is_array($errors) && !empty($errors) ? implode(' | ', array_map('strval', $errors)) : '';
    $alertsText = is_array($alerts) && !empty($alerts) ? implode(' | ', array_map('strval', $alerts)) : '';

    echo "❌ Manual connection FAILED\n";
    echo "Last error: " . ($lastError !== '' ? $lastError : '(empty)') . "\n";
    if ($errorsText !== '') {
        echo "Errors: " . $errorsText . "\n";
    }
    if ($alertsText !== '') {
        echo "Alerts: " . $alertsText . "\n";
    }
}

echo "\n=== TEST PROCESSOR METHOD ===\n";
try {
    $processor = new \App\Services\ReplyProcessorService();
    $result = $processor->processReplies($server2);
    echo "✅ Server #2 SUCCESS: Processed {$result} replies\n";
} catch (Exception $e) {
    echo "❌ Server #2 FAILED: " . $e->getMessage() . "\n";
}

echo "\n=== QUICK FIX OPTIONS ===\n";
echo "1. Deactivate server #2:\n";
echo "   php artisan tinker --execute=\"\\App\\Models\\ReplyServer::find(2)->update(['active' => false]);\"\n\n";

echo "2. Update server #2 with working credentials:\n";
echo "   php artisan tinker --execute=\"\\App\\Models\\ReplyServer::find(2)->update(['username' => '<USERNAME>', 'password' => '<PASSWORD>', 'hostname' => '<HOSTNAME>', 'port' => 993, 'encryption' => 'ssl', 'validate_ssl' => false]);\"\n\n";