首页 > 解决方案 > 带图像的 Strapi 电子邮件模板

问题描述

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

标签: javascriptnodemailerstrapi

解决方案


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

这是一个带有自定义正文和文件附件的示例。

'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;
  },
};

推荐阅读