Skip to Content
🎉 Mailprex 1.0 is soon to released. Read more →
ExamplesExamples

Examples

React contact form (useMailprex)

Full example using the v1-compatible hook from the mailprex package.

"use client"; import { useMailprex } from "mailprex"; const ContactForm = () => { const { formData, handleChange, handleSubmit, response } = useMailprex({ url: "https://api.mailprex.excelso.xyz/email/send", webName: "Your Website", emailDestiny: "you@example.com", formToken: process.env.NEXT_PUBLIC_MAILPREX_FORM_TOKEN!, }); return ( <form onSubmit={handleSubmit} className="max-w-lg mx-auto p-4"> <label htmlFor="fullname">Full name *</label> <input id="fullname" name="fullname" value={formData.fullname} onChange={handleChange} required /> <label htmlFor="email">Email *</label> <input id="email" name="email" type="email" value={formData.email} onChange={handleChange} required /> <label htmlFor="message">Message *</label> <textarea id="message" name="message" value={formData.message} onChange={handleChange} required /> <button type="submit">Send</button> {response.loading && <p>Sending…</p>} {response.error && <p>Failed: {response.error}</p>} {response.data && <p>Message sent!</p>} </form> ); }; export default ContactForm;

Custom fields (useMailprexForm)

"use client"; import { useMailprexForm } from "mailprex"; export function LeadForm() { const { fields, handleChange, handleSubmit, response } = useMailprexForm({ url: "https://api.mailprex.excelso.xyz/email/send", webName: "Agency Site", emailDestiny: "hello@example.com", formToken: process.env.NEXT_PUBLIC_MAILPREX_FORM_TOKEN!, initialFields: { fullname: "", email: "", message: "", company: "", budget: "", }, }); return ( <form onSubmit={handleSubmit}> <input name="fullname" value={fields.fullname} onChange={handleChange} /> <input name="email" value={fields.email} onChange={handleChange} /> <input name="company" value={fields.company} onChange={handleChange} /> <input name="budget" value={fields.budget} onChange={handleChange} /> <textarea name="message" value={fields.message} onChange={handleChange} /> <button type="submit">Send</button> {response.error && <p>{response.error}</p>} </form> ); }

Vanilla JavaScript (sendMailprex)

import { sendMailprex } from "mailprex"; document.querySelector("form")?.addEventListener("submit", async (e) => { e.preventDefault(); const form = e.target as HTMLFormElement; const data = new FormData(form); const result = await sendMailprex({ url: "https://api.mailprex.excelso.xyz/email/send", formToken: import.meta.env.VITE_MAILPREX_TOKEN, webName: "Landing Page", emailDestiny: "you@example.com", fields: Object.fromEntries(data.entries()) as Record<string, string>, }); alert(result.ok ? "Sent!" : result.error); });

See also SDK v2 and API reference.

Last updated on
Mailprex Docs 2026 © Mailprex.