Los equipos de marketing por email envían cientos de campañas al año. Regulaciones como GDPR y leyes locales de protección de datos, combinadas con requisitos internos de cumplimiento, frecuentemente exigen archivar cada email enviado. Mientras los proveedores de servicios de email almacenan datos de campañas, tener un archivo PDF te da un registro portable, buscable y legalmente admisible que no depende de un proveedor externo.
¿Por Qué Archivar Emails como PDF?
- Cumplimiento regulatorio — Los sectores financiero y de salud requieren registros duraderos de todas las comunicaciones con clientes.
- Protección legal — En disputas, un PDF con marca de tiempo es evidencia más fuerte que una captura de pantalla.
- Independencia de proveedor — Si cambias de plataforma de email, tu archivo permanece intacto.
- Revisión interna — Equipos de producto y legal pueden revisar campañas anteriores sin acceder a la plataforma de email.
- Reportes para clientes — Las agencias pueden entregar portafolios de campañas como documentos PDF profesionales.
El Desafío: HTML de Email No Es HTML Web
Los emails HTML usan un subconjunto de HTML y CSS que data de principios de los 2000. Los clientes de email tienen motores de renderización muy inconsistentes, así que los desarrolladores de email dependen de:
- Layouts basados en tablas en lugar de Flexbox o Grid
- Estilos inline en lugar de hojas de estilo externas
- Atributos obsoletos como
bgcolor,alignycellpadding - Comentarios condicionales para Outlook (
<!--[if mso]>)
Preprocesando HTML de Email
const { JSDOM } = require('jsdom');
function preprocessEmailHTML(emailHtml) {
const dom = new JSDOM(emailHtml);
const document = dom.window.document;
// Eliminar comentarios condicionales de Outlook
const html = emailHtml.replace(/<!--\[if[^\]]*\]>.*?<!\[endif\]-->/gs, '');
// Eliminar píxeles de seguimiento (imágenes 1x1)
document.querySelectorAll('img').forEach(img => {
if (img.width <= 1 || img.height <= 1) img.remove();
});
// Asegurar que las imágenes usen URLs absolutas
document.querySelectorAll('img').forEach(img => {
if (img.src && !img.src.startsWith('http')) {
img.src = `https://cdn.example.com${img.src}`;
}
});
// Agregar estilos amigables para impresión
const style = document.createElement('style');
style.textContent = `
@media print {
body { width: 100% !important; margin: 0 !important; }
table { width: 100% !important; }
img { max-width: 100% !important; height: auto !important; }
}
`;
document.head.appendChild(style);
return dom.serialize();
}
Convirtiendo a PDF
async function archiveEmail(campaignId, emailHtml, subject) {
const cleanHtml = preprocessEmailHTML(emailHtml);
const response = await fetch('https://api.tongorender.io/v1/pdf', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'X-API-Key': process.env.TONGORENDER_API_KEY,
},
body: JSON.stringify({
html: cleanHtml,
format: 'A4',
margin: { top: '15mm', bottom: '15mm', left: '10mm', right: '10mm' },
}),
});
if (!response.ok) throw new Error(`Archivado falló: ${response.statusText}`);
return Buffer.from(await response.arrayBuffer());
}
Archivado en Lote con Mailchimp
const mailchimp = require('@mailchimp/mailchimp_marketing');
mailchimp.setConfig({ apiKey: process.env.MAILCHIMP_API_KEY, server: 'us1' });
async function archiveAllCampaigns() {
const campaigns = await mailchimp.campaigns.list({ count: 100, status: 'sent' });
for (const campaign of campaigns.campaigns) {
const content = await mailchimp.campaigns.getContent(campaign.id);
const pdf = await archiveEmail(campaign.id, content.html, campaign.settings.subject_line);
fs.writeFileSync(`archives/${campaign.id}.pdf`, pdf);
console.log(`Archivado: ${campaign.settings.subject_line}`);
}
}
Consejos para Conversión Perfecta de Email a PDF
- Establece un ancho fijo — Los emails generalmente tienen 600px de ancho. Configura el viewport para que coincida.
- Maneja las web fonts — Muchos clientes de email eliminan las web fonts, pero los PDFs pueden renderizarlas.
- Elimina elementos interactivos — Botones con handlers JavaScript o elementos de formulario no funcionarán en PDF.
- Prueba variantes de modo oscuro — Si tu email tiene CSS de modo oscuro, decide qué versión archivar.
TongoRender maneja layouts de email basados en tablas, estilos inline y atributos HTML legacy sin problemas. El motor de renderización Chromium trata el HTML de email como cualquier página web.
Archiva tus emails con TongoRender — 100 renderizaciones gratuitas al mes, sin necesidad de tarjeta de crédito.