403Webshell
Server IP : 198.71.58.22  /  Your IP : 216.73.216.72
Web Server : Apache/2.4.62 (AlmaLinux) OpenSSL/3.2.2
System : Linux localhost 5.14.0-570.33.2.el9_6.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Aug 14 07:37:35 EDT 2025 x86_64
User : root ( 0)
PHP Version : 8.3.24
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : ON
Directory :  /var/www/html/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/www/html//suppress-emails.sh
#!/bin/bash
# Suppress auto-update and WP Mail SMTP summary emails across all WP instances

SITES_ROOT="/var/www/html"
MYSQL_ROOT_PASS='Idlgean2024##'

MU_PLUGIN_CONTENT='<?php
/**
 * Disable WordPress auto-update notification emails and WP Mail SMTP summary.
 */

// Disable plugin/theme auto-update emails
add_filter( '"'"'auto_plugin_update_send_email'"'"', '"'"'__return_false'"'"' );
add_filter( '"'"'auto_theme_update_send_email'"'"',  '"'"'__return_false'"'"' );
add_filter( '"'"'auto_core_update_send_email'"'"',   '"'"'__return_false'"'"' );
add_filter( '"'"'send_core_update_notification_email'"'"', '"'"'__return_false'"'"' );
'

PHP_UPDATE_SMTP='<?php
// Update wp_mail_smtp option to disable the weekly summary report
$cfg = file_get_contents($argv[1]);
preg_match("/define\s*\(\s*['\''\"]\s*DB_NAME\s*['\''\"]\s*,\s*['\''\"](.*?)['\''\"]\s*\)/", $cfg, $m_name);
preg_match("/define\s*\(\s*['\''\"]\s*DB_USER\s*['\''\"]\s*,\s*['\''\"](.*?)['\''\"]\s*\)/", $cfg, $m_user);
preg_match("/define\s*\(\s*['\''\"]\s*DB_PASSWORD\s*['\''\"]\s*,\s*['\''\"](.*?)['\''\"]\s*\)/", $cfg, $m_pass);
preg_match("/define\s*\(\s*['\''\"]\s*DB_HOST\s*['\''\"]\s*,\s*['\''\"](.*?)['\''\"]\s*\)/", $cfg, $m_host);
preg_match("/\\\$table_prefix\s*=\s*['\''\"](.*?)[''\""]\s*;/", $cfg, $m_prefix);

$db   = $m_name[1]   ?? "";
$user = $m_user[1]   ?? "root";
$pass = $m_pass[1]   ?? "";
$host = $m_host[1]   ?? "localhost";
$pfx  = $m_prefix[1] ?? "wp_";

$pdo = new PDO("mysql:host=$host;dbname=$db;charset=utf8mb4", $user, $pass, [PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]);

$row = $pdo->query("SELECT option_value FROM {$pfx}options WHERE option_name = '"'"'wp_mail_smtp'"'"'")->fetch(PDO::FETCH_ASSOC);
if (!$row) { echo "SKIP (no wp_mail_smtp option)\n"; exit; }

$opt = unserialize($row["option_value"]);
if (!is_array($opt)) { echo "SKIP (unserialize failed)\n"; exit; }

$already = isset($opt["general"]["summary_report_email_disabled"]) && $opt["general"]["summary_report_email_disabled"] === true;
if ($already) { echo "ALREADY DISABLED\n"; exit; }

$opt["general"]["summary_report_email_disabled"] = true;
$new = serialize($opt);
$stmt = $pdo->prepare("UPDATE {$pfx}options SET option_value = ? WHERE option_name = '"'"'wp_mail_smtp'"'"'");
$stmt->execute([$new]);
echo "UPDATED\n";
'

echo "=== Suppress Emails Script ==="
echo ""

# Write temp PHP script
PHP_SCRIPT=$(mktemp /tmp/update_smtp_XXXXXX.php)
cat > "$PHP_SCRIPT" << 'PHPEOF'
<?php
$cfg = file_get_contents($argv[1]);
preg_match("/define\s*\(\s*['\"]DB_NAME['\"]\s*,\s*['\"](.*?)['\"]\s*\)/", $cfg, $m_name);
preg_match("/define\s*\(\s*['\"]DB_USER['\"]\s*,\s*['\"](.*?)['\"]\s*\)/", $cfg, $m_user);
preg_match("/define\s*\(\s*['\"]DB_PASSWORD['\"]\s*,\s*['\"](.*?)['\"]\s*\)/", $cfg, $m_pass);
preg_match("/define\s*\(\s*['\"]DB_HOST['\"]\s*,\s*['\"](.*?)['\"]\s*\)/", $cfg, $m_host);
preg_match('/\$table_prefix\s*=\s*[\'\"](.*?)[\'\"]\s*;/', $cfg, $m_prefix);

$db   = $m_name[1]   ?? "";
$user = $m_user[1]   ?? "root";
$pass = $m_pass[1]   ?? "";
$host = $m_host[1]   ?? "localhost";
$pfx  = $m_prefix[1] ?? "wp_";

if (empty($db)) { echo "ERROR: could not parse DB_NAME\n"; exit(1); }

try {
    $pdo = new PDO("mysql:host=$host;dbname=$db;charset=utf8mb4", $user, $pass, [PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]);
} catch (Exception $e) {
    // Fall back to root credentials
    try {
        $pdo = new PDO("mysql:host=localhost;dbname=$db;charset=utf8mb4", "root", "Idlgean2024##", [PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]);
    } catch (Exception $e2) {
        echo "ERROR: " . $e2->getMessage() . "\n"; exit(1);
    }
}

$row = $pdo->query("SELECT option_value FROM {$pfx}options WHERE option_name = 'wp_mail_smtp'")->fetch(PDO::FETCH_ASSOC);
if (!$row) { echo "SKIP (no wp_mail_smtp option)\n"; exit; }

$opt = unserialize($row["option_value"]);
if (!is_array($opt)) { echo "SKIP (unserialize failed)\n"; exit; }

if (!empty($opt["general"]["summary_report_email_disabled"])) { echo "ALREADY DISABLED\n"; exit; }

$opt["general"]["summary_report_email_disabled"] = true;
$new = serialize($opt);
$stmt = $pdo->prepare("UPDATE {$pfx}options SET option_value = ? WHERE option_name = 'wp_mail_smtp'");
$stmt->execute([$new]);
echo "UPDATED\n";
PHPEOF

for site in "$SITES_ROOT"/*/; do
  name=$(basename "$site")
  cfg="$site/wp-config.php"
  mu_dir="$site/wp-content/mu-plugins"

  echo "--- $name ---"

  # 1. Create mu-plugin to suppress WordPress auto-update emails
  mkdir -p "$mu_dir"
  cat > "$mu_dir/suppress-update-emails.php" << 'MUEOF'
<?php
/**
 * Disable WordPress auto-update notification emails.
 */
add_filter( 'auto_plugin_update_send_email', '__return_false' );
add_filter( 'auto_theme_update_send_email',  '__return_false' );
add_filter( 'auto_core_update_send_email',   '__return_false' );
add_filter( 'send_core_update_notification_email', '__return_false' );
MUEOF
  echo "  [mu-plugin] Created: suppress-update-emails.php"

  # 2. Update WP Mail SMTP option if wp-config.php exists
  if [ -f "$cfg" ]; then
    result=$(php "$PHP_SCRIPT" "$cfg" 2>&1)
    echo "  [smtp summary] $result"
  else
    echo "  [smtp summary] SKIP (no wp-config.php)"
  fi

  echo ""
done

rm -f "$PHP_SCRIPT"
echo "=== Done ==="

Youez - 2016 - github.com/yon3zu
LinuXploit