OpenEmail para v0
Envía correocon v0.
Pega un prompt y v0 añade una ruta de servidor que envía con tu clave de OpenEmail.
Añade correo transaccional a esta app con OpenEmail. 1. Instala el SDK de TypeScript con npm install @openemail/sdk. 2. Lee la clave API de la variable de entorno OPENEMAIL_API_KEY, solo en el servidor. Nunca la envíes al navegador ni la incluyas en un commit. 3. Escribe una función auxiliar sendEmail que llame una vez a init y después a openemail.emails.send. Envía desde una dirección de un dominio verificado en OpenEmail. 4. Implementa el envío en un route handler de Next.js, en app/api/send/route.ts. 5. Pasa un idempotencyKey construido a partir del evento, como welcome:<userId>, para que un reintento nunca envíe dos veces. 6. Envía un correo de bienvenida cuando alguien se registre y escribe en el log el id que se devuelve. Referencia del SDK: https://openemail.uk/docs/sdk
Cambia el remitente y el disparador para adaptarlos a tu app. El resto es cómo OpenEmail espera que lo llamen.
Tres pasos,
y empieza a enviar.
- 01
Crea una clave
Crea en Configuración una clave que pueda enviar. El secreto se muestra una sola vez.
- 02
Mantenla en secreto
Añade OPENEMAIL_API_KEY a los secretos de v0, nunca al código.
- 03
Pega el prompt
v0 instala el SDK y escribe el código de envío. Revisa el cambio y luego ejecútalo.
Lo que escribe.
Una ruta, una llamada.
Un resultado típico. Puede que v0 nombre los archivos de otra forma.
app/api/send/route.ts
import { init, openemail } from '@openemail/sdk'init({ apiKey: process.env.OPENEMAIL_API_KEY })export async function POST(request: Request) {const { email, name, userId } = await request.json()const sent = await openemail.emails.send({from: 'Acme <[email protected]>',to: email,subject: `Welcome, ${name}`,html: `<p>Thanks for signing up, ${name}.</p>`,}, {idempotencyKey: `welcome:${userId}`,})return Response.json({ id: sent.id })}
Otras herramientas
mismo prompt, mismo buzón.
Crea una clave.
Envía algo.
Acceso completo a la API, MCP y el SDK en todos los planes, incluido el gratuito.