Website contact form sends mail intermittently

Practical troubleshooting paths for MSP technicians dealing with real-world support failures.

Field Summary

Intermittent contact-form delivery usually means the form submit, server-side mail generation, SMTP relay, DNS authentication, spam filtering, or CRM/webhook handoff is failing at different points. A success message on the website only proves the browser workflow completed; it does not prove mail was accepted or delivered.

Common Symptoms

  • Some submissions arrive and others vanish.
  • Website shows confirmation but no email appears.
  • Admin notification works but autoresponder fails.
  • CRM record is missing while email sends, or email fails while CRM record exists.
  • Failures cluster around captcha, attachments, sender domain, or time of day.

Fast Triage

  1. Submit a timestamped test with unique text.
  2. Check whether the CMS stores the submission locally.
  3. Check spam/quarantine for sender and recipient.
  4. Test with simple text and no attachment.
  5. Record form URL, sender, recipient, confirmation behavior, and exact time.

Likely Causes

  • SMTP relay rejects, defers, or rate-limits mail.
  • SPF/DKIM/DMARC alignment fails for the sending domain.
  • Captcha or form token expires behind cache/CDN.
  • Form plugin/module logs an error after browser confirmation.
  • Webhook/API authentication to CRM fails.
  • Recipient filtering, mailbox rule, or quarantine catches the message.

Tier 1 Fix Path

  1. Confirm a local submission record exists.
  2. Retest without attachments and with a normal sender address.
  3. Check junk/quarantine and mailbox rules.
  4. Clear CDN/page cache if form tokens look stale.
  5. Do not repeatedly submit real customer data if duplicates could create records.

Tier 2 / Admin Investigation

  1. Check browser console, web server/PHP logs, CMS form logs, SMTP relay logs, and CRM/webhook logs at the test timestamp.
  2. Run Microsoft 365 message trace or vendor mail trace.
  3. Validate SPF, DKIM, DMARC alignment and envelope sender.
  4. Review captcha dashboard and reverse proxy/CDN cache behavior.
  5. Check API credential expiration and webhook response codes.

Advanced Remediation

Move the form to authenticated SMTP/API delivery if PHP mail is unreliable. Rotate API credentials only when logs show authentication failures. DNS authentication changes should be verified with real headers after propagation.

Verification

  • Test submission appears in CMS/local storage.
  • Mail trace shows accepted and delivered to intended recipients.
  • Recipient sees the message outside junk/quarantine.
  • CRM/webhook record matches the test submission.
  • Headers show expected SPF/DKIM/DMARC result.

Ticket Notes to Capture

  • Form URL, test timestamp, sender, recipient, submission ID, confirmation behavior, relay result, mail trace, DNS auth result, webhook/API result, fix, verification.

Escalate When

  • Server logs show application errors.
  • DNS/mail authentication changes are needed.
  • CRM or captcha vendor logs show platform-side failures.
  • Production lead capture is losing revenue or regulated requests.

Prevention

Use authenticated mail delivery, local submission storage, monitored webhook failures, and a documented mail path for each production form.