Aquí está mi código para un gancho personalizado que uso para expandir Directus 9.
Quiero enviar un correo cuando se actualice un campo específico en la tabla de eventos. Por ahora solo estoy comprobando si la tabla de eventos se actualiza. Luego, a través de MailService, quiero enviar un correo electrónico. el código se ejecuta y registra 'correo enviado' pero no sale ningún correo.
También tengo una plantilla personalizada que sigue después del código. Y, de hecho, el archivo de plantilla se recoge y se reconoce. Lo compruebo eliminándolo, luego recibo un error de que falta la plantilla.
/extensiones/hooks/event-time-update/index.js
module.exports = function registerHook({ action }, { services, exceptions }) { const { MailService } = services; const { ServiceUnavailableException, ForbiddenException } = exceptions; // Send mail to admin when event time is updated action('items.update', async ({ collection }, { schema }) => { if (collection !== 'events') return; const mailService = new MailService({ schema }); try { await mailService.send({ to: 'abc@gmail.com', subject: 'Event time updated', text: 'Event time updated', template: { name: 'event-time-update', data: { collection: collection, }, }, }); console.log('mail sent'); } catch (error) { console.error(error); throw new ServiceUnavailableException(error); } return; }); };/extensiones/templates/event-time-update.liquid
{% layout "base" %} {% block content %} <p> Die Veranstalungszeit der Veranstaltung <i>{{ projectName }}</i> wurde geändert. </p> <p style="text-align: center; padding: 20px 0;"> <a href="{{ url }}"> <b>{{ projectName }} ansehen</b> </a> </p> <p> Thank you,<br> The {{ projectName }} Team </p> {% endblock %}Está bien, no importa, está funcionando. Olvidé reemplazar abc@gmail.com 😫