Estoy enviando correos electrónicos con Nodemailer, además uso el paquete ical-generator para generar archivos .ics, estos archivos son visibles como un archivo adjunto en el correo electrónico que envié, pero no hay ningún botón que muestre una acción instantánea para aceptar las invitaciones como algunos muestran otros correos.
Esta es mi implementación actual:
export default function generateIcal(req, res) { const generatedEvents = req.body.data.map(d => ({ start: new Date(d.date), end: new Date(addDays(d.date, 1)), summary: req.body.summary, organizer: { name: 'Frodo', email: 'frodo@cool.com', mailto: 'jonwick@gmail.com' }, })) try { const data = ical({ method: "REQUEST", domain: "https://mydomain.de", name: 'test', events: generatedEvents }).toString(); return res.status(200).json({ data }) } catch (error) { return res.status(error.statusCode || 500).json({ error: error.message }); } }Así es como uso Nodemailer en ese caso:
try { let info = await transporter.sendMail({ sendMail: true, from: sender, // sender address to: req.body.email, // list of receivers subject: `test.`, text: 'test', icalEvent: { filename: 'invite.ics', method: 'request', content: calContent // content generated above }, ```