Ir a la documentación
SDK

Borradores

`drafts.list`, `listAll`, `iterate`, `get`, `create`, `update` y `delete`.

Todos los métodos

usage.ts
const page = await openemail.drafts.list({ query: 'invoice', limit: 25 })const draft = await openemail.drafts.get('draft_…') const created = await openemail.drafts.create({  to: ['[email protected]'],  cc: [],  bcc: [],  subject: 'Your September invoice',  html: '<p>Draft body.</p>',  from: '[email protected]',  threadId: 'thread_…',}) const updated = await openemail.drafts.update(created.id!, { subject: 'Revised' })await openemail.drafts.delete(updated.id!)

update conserva el id del borrador, así que el valor con el que responde es siempre el que pasaste. Un id desconocido es un 404 y no un borrador nuevo.

list pagina igual que threads.list: el pageToken de la API vuelve como nextCursor y se envía como cursor, y listAll e iterate lo siguen por ti.

Para enviar un borrador, pasa su id a emails.send. El borrador aporta el contenido y el envío aporta el sobre.

send-draft.ts
await openemail.emails.send({  from: '[email protected]',  to: '[email protected]',  draftId: 'draft_…',})

Parámetros: drafts.create y drafts.update (DraftInput)

tostring[]
Direcciones de destinatarios como cadenas simples, no las formas `RecipientInput` que acepta `emails.send`, porque este endpoint une el array en la lista separada por comas que quiere el driver. Al crear, un array omitido se guarda vacío; al actualizar, un campo omitido deja intactos los destinatarios almacenados, ya que el manejador lee primero el borrador y fusiona.
ccstring[]
Direcciones en Cc, en la misma forma de cadena simple que `to`. Vacío al crear si se omite, e intacto al actualizar si se omite.
bccstring[]
Direcciones en Bcc, en la misma forma de cadena simple que `to`. Vacío al crear si se omite, e intacto al actualizar si se omite.
subjectstring
El asunto del borrador, de 998 caracteres como máximo, el límite de línea de RFC 5322. Al crear, por defecto es una cadena vacía, así que un borrador siempre tiene uno.
htmlstring
El cuerpo del borrador como marcado, de 1.000.000 de caracteres como máximo. Es el cuerpo que gana: `html` y `text` alimentan el único campo de mensaje del driver, así que enviar ambos guarda este.
textstring
Un cuerpo de texto plano, de 1.000.000 de caracteres como máximo, que solo se usa cuando falta `html`. El borrador guarda un único cuerpo en lugar de dos partes, así que el texto que pongas aquí vuelve en `html` cuando se lee el borrador.
fromstring
La dirección del remitente que se guarda en el borrador. Al actualizar, se arrastra desde el borrador almacenado si se omite. El driver reconstruye el mensaje entero a partir de lo que recibe, así que un parche parcial que la descartara cambiaría en silencio el remitente elegido.
threadIdstring
Adjunta el borrador a un hilo existente para que se guarde como respuesta. Igual que `from`, se arrastra al actualizar si se omite, porque reconstruir el mensaje sin él desvincularía la respuesta de su hilo.

Respuesta: DraftResource (drafts.get)

object'draft'
Siempre `draft`.
idstring
El id del borrador. Las escrituras responden con un `SavedDraftResource` en lugar de un borrador completo, así que lee el id del resultado en vez de reutilizar el que enviaste.
tostring[]
Las direcciones de los destinatarios tal como las guardó el borrador. Un array vacío, nunca null, cuando el borrador no tiene ninguna.
ccstring[]
Direcciones en Cc tal como están guardadas. Un array vacío, nunca null, cuando el borrador no tiene ninguna.
bccstring[]
Direcciones en Bcc tal como están guardadas. Un array vacío, nunca null, cuando el borrador no tiene ninguna.
subjectstring
El asunto guardado, o una cadena vacía cuando el borrador no tiene ninguno. Este campo nunca es null, así que comprueba su longitud y no su presencia.
htmlstring
El cuerpo guardado, o una cadena vacía cuando el borrador no tiene ninguno. No hay un campo de texto aparte en la salida: un borrador guardado solo con `text` se devuelve aquí.