- AI builders
- Cursor
Cursor contact form not sending email?
Cursor says the form is wired up, but the endpoint it used doesn’t exist, or the handler is still a TODO. Cursor edits the project in your own repo, with whatever stack you use. A contact form it writes still needs somewhere to send, and that is a decision you have to give it.
Why it doesn’t send
Because Cursor works inside any stack, it can produce an Astro form, a React component or a PHP handler, and it will pick whichever fits the code it can see. Without a destination in your instructions, it writes a placeholder or invents an endpoint.
Give the agent the real URL once and it stops guessing. You can verify that URL yourself from a terminal before you let the agent wire it in.
Paste this into Cursor
Paste it into Cursor’s chat or Agent with the form file open, and review the diff before you accept it.
Make my contact form send submissions to FormRill at https://api.formrill.com/YOUR_FORM_ID/submit. Find the contact form in this project, wire it up in whatever stack it uses, and show me the diff before applying it. Keep my existing fields and styling, name the email input "email", and add <input type="checkbox" name="botcheck" hidden /> as a honeypot. If the form submits with JavaScript, send FormData with fetch and the header Accept: application/json, show success only when the JSON response has ok: true, and show an error otherwise. Do not add a backend, API route, edge function, environment variables or API keys.
Replace YOUR_FORM_ID with the ID from your form URL after signup. After you sign up, your dashboard shows this prompt with your real form URL already filled in.
Cursor gotcha: Coding agents invent plausible-looking endpoints. Run the curl test first, check the diff uses exactly your URL, and save it in a project rule so the next form doesn’t guess.
What it produces
curl -X POST https://api.formrill.com/YOUR_FORM_ID/submit \
-H "Accept: application/json" \
-d "name=Test" -d "email=you@example.com" -d "message=Hello from curl"Three steps
- Sign up and copy your form URL. Run the curl test and watch the message arrive.
- Paste the prompt into Cursor chat or Agent with the form file open. Review the diff before accepting it.
- Save the endpoint line in a project rule so every future form uses it.
Questions
Can I make Cursor remember the endpoint?
Yes. Put the endpoint and the honeypot field in a project rule file, and later forms it generates will follow it.
Does it work with Astro, Next.js, Hugo and plain HTML?
Yes. It is an HTTP POST, so any stack that can submit a form or call fetch can use it.
Can Cursor read my submissions?
Not yet. An MCP server for that is planned and not available today, so read submissions in the dashboard or your inbox.
Is it free?
Yes: 500 submissions a month free, shared by every form in every project. Details on the pricing page.
Fix your Cursor form in one paste
Free up to 500 submissions a month and unlimited forms. No server, no credit card.
Start freeOther AI builders
- Lovable contact form fix
Lovable contact form shows “thanks” but no email arrives? Point it at a FormRill URL with one prompt. Free, no server or edge function to write.
- v0 contact form fix
v0 gave you a contact form that doesn’t send email? Wire its Next.js client component to FormRill with one prompt. Free plan, no API route needed.
- Bolt.new contact form fix
Bolt.new contact form not sending email? Skip the backend: a plain HTML form action pointing at FormRill works in preview and after deploy. Free to start.
- All AI builders
The shared prompt and the full overview.