ZeroToShip

Docs/Feature

// feature

Email (Resend)

Le email transazionali passano da Resend. Setup DNS in 10 minuti (SPF + DKIM), poi mandi email di benvenuto, ricevute, notifiche — tutto dal codice con una sola funzione.

libs/resend.ts

C'è un solo helper: sendEmail. Prende to, subject, text, html e opzionalmente un replyTo. Il from viene dal config.

libs/resend.ts
ts
import { sendEmail } from "@/libs/resend";

await sendEmail({
  to: "cliente@example.com",
  subject: "Benvenuto su ZeroToShip",
  text: "Ciao, grazie per l'acquisto.",
  html: "<p>Ciao, grazie per l'acquisto.</p>",
});

Due indirizzi mittente

In config.ts, sotto resend, hai due mittenti separati:

  • fromNoReply — per email automatiche tipo notifiche (es. noreply@resend.tuodominio.com).
  • fromAdmin — per email che sembrano scritte da te (es. alberto@resend.tuodominio.com). È quello usato di default in sendEmail.

Magic link

I link di login non passano da sendEmail. Li spedisce Supabase direttamente — devi solo configurare Resend come SMTP nel progetto Supabase (Auth → SMTP Settings) usando le tue credenziali Resend. Da lì i template dei magic link sono modificabili nella dashboard Supabase.

Quando usare sendEmail a mano

Email di benvenuto dopo il primo pagamento, notifiche di eventi, riepiloghi settimanali. Un posto comodo dove chiamarlo è dentro il case checkout.session.completed del webhook Stripe.

Setup DNS e primo invio passo-passo: Configurare le email.