Buenas!

Estos dias estoy trabajando en un proyecto con Next.js y Tina.io, y creo que es una linda oportunidad para compartir un poco un servicio que estuve utilizando: Resend.

¿Qué es Resend? En pocas palabras, una librería bastante popular que permite enviarnos por mail los datos que un usuario nos haya ingresado en un formulario (por ejemplo). Mérito a sus desarrolladores: Zeno Rocha, creador del [Dracula Theme][dracula], y Bu Kinoshita.

Paso 1: Instalamos Resend

En la terminal:

npm install resend

Paso 2: Configuramos API KEY

Tenemos que ir a la página de Resend y crearnos una cuenta. Una vez dentro, vamos a ApiKey y luego a Crear ApiKey. Importante, ni bien tengan la apikey, cópienla porque luego no van a poder volver a verla.

La colocamos en una variable de entorno: env.local junto a nuestro email:

RESEND_API_KEY=xxxxxxxxxx
RESEND_EMAIL=xxxxx@xxxxxx.com

No se olviden de colocar el .env al .gitignore

Provisoriamente, hasta que no verifiquen su dominio (DNS), Resend solo permite enviar correos a la dirección con la que se registraron.

Paso 3: Implementamos

Como estoy en Next.js, el formulario con el que estuve trabajando están en un Server Action:

Primero importamos la librería:

import { Resend } from 'resend';

Luego colocamos la apiKey en una instancia de la librería:

const resend = new Resend(process.env.RESEND_API_KEY);

Y por último, nos envíamos los datos que ingresó el usuario a nuestro correo:

const { error } = await resend.emails.send({
      from: 'Acme <onboarding@resend.dev>', 
      to: [process.env.RESEND_EMAIL],
      reply_to: data.email, 
      subject: `Nuevo formulario creado: ${data.name}`,
      html: `
        <h1>¡Tenés un nuevo envío de datos!</h1>
        <p><strong>Nombre:</strong> ${data.name}</p>
        <p><strong>Email:</strong> ${data.email}</p>
        <p><strong>Teléfono:</strong> ${data.phone || 'No especificado'}</p>
        <hr />
      `
    });

    if (error) {
      console.error("Error enviando email:", error);
      return { success: false, message: 'Hubo un error enviando el correo.' };

Por lo que estuve viendo, Resend tiene unos 3000 envíos de mail por mes, así que tengan en cuenta este dato.