带有图像的 Strapi 电子邮件模板

时间:2021-01-14 14:14:24

标签: javascript nodemailer strapi

我正在使用 Strapi-provider-email-nodemailer,我想知道是否可以编写和发送带有 img 标签的自定义电子邮件模板,如果可以,那么如何做到这一点。

1 个答案:

答案 0 :(得分:0)

是的,您可以自定义电子邮件模板。 由于您使用的是电子邮件提供商,我想您知道如何在控制器中编写逻辑。

这是自定义正文和文件附件的示例。

'use strict';
const { parseMultipartData, sanitizeEntity } = require('strapi-utils');

module.exports = {
  async create(ctx) {
    let entity;
    if (ctx.is('multipart')) {
      const { data, files } = parseMultipartData(ctx);
      entity = await strapi.services.modelName.create(data, { files });
    } else {
      entity = await strapi.services.modelName.create(ctx.request.body);
    }
      await strapi.plugins['email'].services.email.send({
        to: "@hotmail.com",
        from: "@gmail.com",
        subject: `Application recevied at ${entity.created_at.toLocaleString()} ${entity.name}`,
        text: `
          No #${entity.id} \n
          Content:
          ${entity.content}
        `,
        html: `
        <h5>${entity.id} </h5>
        <table > 
            <tr>
                <td >Applicant</td>
                <td>${entity.name}</td>
            </tr>
            <tr>
                <td >Date</td>
                <td>${entity.created_at.toLocaleString()}</td>
            </tr>          
        </table>
        <img ..... />
        <what ever you want />
        `,
        attachments:entity.files.map(file=>{
            return ({
            filename:file.name,
            href : file.url,
        })}
        )
      });
    return entity;
  },
};