Ir al contenido

Email

Envía correos transaccionales desde tu app. Administra identidades de remitente y rastrea la entrega desde Dashboard > Emails o el SDK.

Cada app de Proyecta puede enviar correo transaccional. Verifica una identidad de remitente y luego envía desde el código de tu app — sin necesidad de una cuenta separada en un proveedor de correo.

Abre Dashboard > Emails en el builder. La pestaña tiene dos sub-pestañas:

PestañaPara qué sirve
IdentitiesAgrega y verifica direcciones de correo o dominios de remitente
SentConsulta los correos enviados con su estado de entrega (sent, delivered, bounced, etc.)

Puedes agregar una nueva identidad de remitente y revisar tu historial de entregas — todo sin escribir código.

  1. Crea y verifica una identidad de remitente (una dirección de correo o un dominio)
  2. Llama a proyecta.email.send() con la dirección verificada en el campo from

La opción más sencilla es verificar una sola dirección de correo.

import Proyecta from '@proyecta-ai/sdk';
const proyecta = new Proyecta({ apiKey: process.env.PROYECTA_API_KEY });
const identity = await proyecta.email.identities.create({
type: 'email',
value: 'hello@myapp.com',
});
// identity.status === 'verified' immediately upon creation

Para volver a activar la verificación:

await proyecta.email.identities.verify({ identityId: identity.id });

Para apps en producción, verifica el dominio completo para poder enviar desde cualquier dirección en él (hello@, support@, noreply@, etc.).

const identity = await proyecta.email.identities.create({
type: 'domain',
value: 'myapp.com',
});
// identity.status === 'verified' immediately upon creation

La verificación de dominio basada en DNS (generación de registros SPF/DKIM y reverificación) está planeada pero aún no está implementada.

Una vez que tu identidad esté verificada, envía con:

await proyecta.email.send({
from: 'Acme <hello@myapp.com>',
to: 'customer@example.com',
subject: 'Your receipt from Acme',
html: '<p>Thanks for your order — here are the details.</p>',
text: 'Thanks for your order — here are the details.',
});

send devuelve el objeto completo del correo enviado (incluyendo id, last_event y los campos del mensaje), que puedes usar para consultar el estado de entrega más adelante.

Destinatarios. to, cc y bcc aceptan una sola dirección o un arreglo.

Contenido. Proporciona html, text o ambos. Para mejor entregabilidad, incluye una versión en texto plano.

Reply-to, encabezados personalizados, etiquetas de metadatos. reply_to está soportado (se usa la primera dirección). Los encabezados personalizados y las etiquetas de metadatos son aceptados por la API, pero aún no se reenvían al proveedor de entrega.

Lista los correos enviados (paginados) con su último evento de entrega:

const { data: emails } = await proyecta.email.list({ limit: 20 });
for (const email of emails) {
console.log(email.subject, '', email.last_event);
// last_event: 'sent' | 'delivered' | 'opened' | 'clicked' | 'bounced' | 'complained'
}

Obtén un correo individual con su cuerpo completo en HTML/texto:

const full = await proyecta.email.get('email_abc123');
console.log(full.html, full.text, full.last_event);

No necesitas escribir esto a mano:

  • "Verify hello@myapp.com as a sending identity."
  • "Send a welcome email with Proyecta Email whenever a new user signs up. Use a nice HTML template."
  • "After a successful checkout, send the customer a receipt using proyecta.email.send."
  • "Show me the last 20 emails we've sent and whether they bounced."
  • La dirección from debe ser una identidad verificada. Enviar con una dirección no verificada devuelve un error.
  • Se aplican límites mensuales según tu plan de Proyecta.
  • Editor de plantillas — diseña plantillas transaccionales visualmente en el builder
  • Endpoint de envío masivo/por lotes para mailings a gran escala