Blog 

Estás viendo un solo post, ver todos

Social Archivist: aceptando links por e-mail

Publicado el 1 de Mayo de 2025 en    

Agregué la función de recibir links por e-mail: el usuario puede escribir a [su id]@socialarchivist.online para guardar contenidos.

Para esto creé un email worker de CloudFlare que captura todos los mails que llegan al dominio. Es básicamente una función lambda con acceso al contenido raw del email entrante. Literalmente 20 líneas de código:

export default {
  async email(message, env, ctx) {
    const webhookUrl = "https://socialarchivist.online/.../";

    try {
      const emailData = {
        from: message.from,
        to: message.to,
        headers: Object.fromEntries(message.headers),
        raw: await new Response(message.raw).text(),
        rawSize: message.rawSize,
      };

      const requestOptions = {
        method: 'POST',
        headers: {
          'Content-Type': 'application/json',
        },
        body: JSON.stringify(emailData),
      };

      await fetch(webhookUrl, requestOptions);
    } catch (error) {
      console.error(`Error processing email from ${message.from}: ${error.message}`);
      message.setReject(`Internal worker error processing email: ${error.message}`);
    }
  }
}