Intermittent users not receiving email verification emails - usually @gmail.com users

Our implementation requires users to verify their email before they are able to logon to the platform. In almost all cases this works as expected.

About 1-2 users out of 20 complain they never received their verification email.

Our Auth0 Tenant is connected to SendGrid to send email.

Dmarc (monitor only), DKIM (all messages signed), SPF (all senders / IP’s listed) seem to be configured correctly. Spot checking / testing always works, very responsive and near immediate. The messages received with the verification when the email message source is viewed show PASS for SPF, DKIM, DMARC. The system uses a dedicated IP @ sendgrid and custom subdomain for email verification.

In the cases where the user complained about not receiving the email verification message, we have built in some additional telemetry to capture the sendgrid event data. The data shows sendgrid has received the email verification message and passed it on to the remote system for delivery however the user is telling us they never received it, we’ve asked them to check Junk/spam without success. There seem to be far too many instances of this happening for this to be an anomaly and almost always a @gmail.com account, not 100% but almost.

I am really at a loss as to what could be going wrong. We will be adding a message on the website to enable the user to resend the message on their own / on demand when they arrive at a screen stating they are not email verified yet. Even when we manually resend the message for this particular users that complain the user continues to tell us they have not received the verification message. When we test the system using our gmail email accounts - such as creating a new account with the gmail + trick or creating a new gmail and new account on our system it works exactly as we expect.

Any ideas or approaches to improve or solve this would be greatly appreciated.

Email delivery can be a pain… if you haven’t done so already I would consider doing conditional login in the verification email template in specific for one of these users and send a very simple message (plain text only, no links). A verification email without a verification email link is indeed not very useful, but for troubleshooting purposes it could be relevant.

If you’re worried about messing with the template in a production tenant you could consider reproducing the situation with one of the users in a test/trial tenant and then modify the template in that one.