HEX
Server: Apache
System: Linux server1.bigdawgworldhost.com 5.14.0-611.34.1.el9_7.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Feb 18 05:51:10 EST 2026 x86_64
User: deltagarden45 (1209)
PHP: 8.4.18
Disabled: exec,passthru,shell_exec,system
Upload Files
File: //scripts/postwwwacct
#!/bin/bash

LOG="/tmp/postwwwacct_dmarc.log"

echo "===== RUN @ $(/usr/bin/date) =====" >> "$LOG"
echo "ARGS: $*" >> "$LOG"

# Extract domain from key/value list
DOMAIN="$(echo "$*" | /usr/bin/awk '{for(i=1;i<=NF;i++){if($i=="domain"){print $(i+1); exit}}}')"
USER="$(echo "$*" | /usr/bin/awk '{for(i=1;i<=NF;i++){if($i=="user"){print $(i+1); exit}}}')"
echo "DOMAIN: $DOMAIN" >> "$LOG"

# If domain missing, exit quietly
[ -z "$DOMAIN" ] && echo "NO DOMAIN FOUND — EXITING" >> "$LOG" && exit 0

# Your desired DMARC policy
DMARC='v=DMARC1; p=quarantine; sp=quarantine; adkim=r; aspf=r; pct=100; fo=1; rf=afrf; ri=86400; rua=mailto:dmarc@cnstx.net; ruf=mailto:dmarc@cnstx.net'

echo "DMARC: $DMARC" >> "$LOG"

# Dump zone JSON
ZONE_JSON="$(/usr/local/cpanel/bin/whmapi1 dumpzone domain="$DOMAIN" --output=json 2>/dev/null)"

# Remove all existing DMARC records
echo "$ZONE_JSON" \
  | /usr/bin/jq -r '.data.zone[].record[] | select(.name != null) | select((.name | tostring | ascii_downcase) | contains("_dmarc")) | .Line' \
  | while read -r LINE; do
        echo "Removing DMARC line: $LINE" >> "$LOG"
        /usr/local/cpanel/bin/whmapi1 removezonerecord domain="$DOMAIN" line="$LINE" >/dev/null 2>&1
    done

# Add your strict DMARC record
echo "Adding DMARC record…" >> "$LOG"
/usr/local/cpanel/bin/whmapi1 addzonerecord domain="$DOMAIN" name="_dmarc.${DOMAIN}." type="TXT" ttl="3600" txtdata="$DMARC" >/dev/null 2>&1

echo "DONE" >> "$LOG"


exit 0