Files

2.3 KiB

Apex WPForms Email Troubleshooting

WPForms on apextrackexperience.com (wphost02, RunCloud CPX21) uses WP Mail SMTP plugin to send through c1113726.sgvps.net:2525.

Known Failure Modes

1. PHP Serialization Corruption

The password stored in WP Mail SMTP settings uses PHP serialized format. If the password contains special characters, the serialized length (s:N:) can become wrong:

s:72:"apex.track!!"   ← WRONG: password is 13 chars, not 72
s:13:"apex.track!!"  ← CORRECT

Symptom: SMTP auth fails silently. WP Mail SMTP can't read the password. Registration emails never send. The site shows "form submitted" but no email arrives.

Fix: UPDATE wp_options SET option_value = REPLACE(option_value, 's:WRONG_LEN:"', 's:CORRECT_LEN:"') WHERE option_name = 'wp_mail_smtp'

2. Sender Address Contains Multiple Emails

The sender_address field in form notifications must be a single email address. WPForms allows entering comma-separated emails but this creates an invalid From header:

"sender_address":"contact@apextrackexperience.com, g@germainebrown.com"  ← INVALID
"sender_address":"contact@apextrackexperience.com"                       ← VALID

Symptom: SMTP server rejects with "Message rejected. domain.com is not currently owned by sender"

Fix: UPDATE wp_posts SET post_content = REPLACE(post_content, 'sender_address":"...", g@...', 'sender_address":"contact@apextrackexperience.com') WHERE ID IN (form_ids)

3. Password Format Changed by WP Mail SMTP Plugin Update

Plugin updates can re-serialize the password with incorrect length. Check after every WP Mail SMTP or WPForms update.

Manual Verification

ssh -i /root/.ssh/itpp-infra root@5.161.62.38 '
mysql -u apextrackexperience_1781549652 -p"K3E1ZZWvHDu0q8ZmoBCAhzKUZawEapdGBlbaPME1sOTKgGk9FCuYS" apextrackexperience_1781549652 -e "
SELECT option_value FROM wp_options WHERE option_name = \"wp_mail_smtp\";
" | grep -o "s:[0-9]*:\\\\\"apex" | head -1
'

If the length (s:N) is wrong, apply fix #1.

Watchdog Cron

The cron apex-mail-watchdog runs every 5 min on Core:

  • Sends test SMTP email via the Apex SMTP server
  • Checks wp_wpmailsmtp_debug_events for recent failures
  • Silent on success, alerts on failure

Script: /root/.hermes/scripts/apex-mail-watchdog.sh Log: /var/log/apex-mail-watchdog.log