Application mail failing.
THE MOST COMMON CAUSE
The application uses PHP's mail function by default. Messages sent that way frequently fail authentication and land in spam or are rejected.
THE FIX
Configure the application to send through SMTP using a mailbox on your domain.
Host mail.yourdomain.com, port 465 with SSL or 587 with TLS, authentication enabled, the full address as username.
In WordPress, an SMTP plugin handles this.
THE FROM ADDRESS RULE
Must be on your own domain. A contact form sending from the visitor's Gmail address fails authentication.
Put the visitor's address in Reply-To instead.
This single mistake accounts for most missing contact form notifications.
CHECK AUTHENTICATION RECORDS
cPanel > Email Deliverability. Repair SPF and DKIM where indicated.
CHECK WHETHER IT LEFT
cPanel > Track Delivery shows whether the message was sent and what the recipient's server said.
SENDING LIMITS
Shared hosting has hourly limits. An application sending in bulk will be interrupted.