tutorial react examples español node.js email meteor server-side templating

node.js - react - MeteorJS: generación de correos electrónicos desde plantillas del lado del servidor



meteor react (3)

Necesito enviar correos electrónicos desde la aplicación MeteorJS y quiero generarlos usando plantillas html, no por "html-in-js" .
Lo que he intentado hacer:
1) Use Template.emailTemplate(data) , pero Template no está definido en el lado del servidor.
2) Guarde mis plantillas de correo electrónico como archivos *.html en el directorio <app>/server/email/templates , obtenga sus contenidos usando fs.readSync() y luego fs.readSync() usando el fs.readSync() integrado de handlebars meteor.
Esto funciona bien en el entorno de desarrollo, pero falla en la producción al utilizar la aplicación incluida debido a que los archivos *.html directorio del server no están agrupados. Además, la estructura de los directorios se cambia durante el proceso del paquete y las rutas relativas a las plantillas se vuelven inválidas.
3) ¿Tus propuestas? =)


Actualmente, las plantillas no son compatibles con el servidor. Esa funcionalidad está llegando. Mientras tanto, creé un paquete que podría ser de utilidad, llamado handlebars-server, que le permite usar Handlebars en el servidor. Puede usar el paquete con atmósfera o copiando el directorio del proyecto en su carpeta de paquetes. Aquí hay un ejemplo:

Ejemplo:

my-email.handlebars

Hello, {{name}}

server.js

Email.send({ html: Handlebars.templates[''my-email'']({ name: ''Chris'' }) });

Nota

No hay plantillas en el archivo de manubrios. Simplemente ponga sus expresiones html y Handlebars. El archivo se compilará en una función y se asignará a una propiedad en el objeto Handlebars.templates. El nombre de la propiedad será el nombre del archivo menos la extensión de manubrios.

Github

https://github.com/eventedmind/meteor-handlebars-server



Otra opción ahora es usar el directorio ''privado'' del lado del servidor para leer los recursos y usarlos para almacenar los recursos que su aplicación usará.

crea el proyecto de meteoritos y luego crea un directorio / privado.

Coloque sus plantillas allí (debe usar el paquete meteor-handlebars-server en su lugar si necesita manillar)

Lea en su plantilla con:

Assets.getText(assetPath, [asyncCallback]);

Obviamente, también puede hacer una coincidencia de patrón de expresión regular / reemplazar contra la cadena una vez que está cargada.

ejemplo:

var template = Assets.getText(assetPath); // Synchronous var username = ''John Doe''; template = template.replace(''{{username}}'', username); Email.send({ html: template });

Para obtener más información sobre la funcionalidad de activos: Meteor Assets