Developer resources

Sending email from a script that actually arrives

"The password reset email never arrives" is one of the most common support tickets in any item that sends mail. Almost always the sending worked and the receiving did not.

Do not send directly from the web server

Shared hosting IP addresses have terrible reputations, earned by everyone else on them. Support proper SMTP settings and, better, an API from a mail provider, and let the buyer configure it. Default to it in the documentation.

The from address must be a domain they control

Sending as the customer's own address so replies work is the most common cause of mail being rejected outright. Send from the site's domain, and set reply-to for the customer's address.

Tell them about the three DNS records

SPF, DKIM and DMARC decide whether mail is trusted. Your item cannot set them and your buyer probably does not know they exist. A short section in your docs explaining what to add prevents more tickets than any code you could write.

Send a plain text part

HTML-only messages score worse with spam filters and are unreadable in some clients. Include both, always.

Log the outcome

Record that the message was accepted for delivery, with a timestamp. When a buyer says nothing arrived, that line tells you instantly whether the problem is yours or theirs.

Give them a test button

One button in settings that sends a test message and shows the actual error on failure. It converts a support conversation into something the buyer solves alone.

Turn your code into income.

Join the authors selling templates, scripts and plugins to developers worldwide. Keep up to 85% of every sale.

Start selling →