当前位置: 首页 > 知识库问答 >
问题:

如何将电子邮件附件添加到strapi提供程序电子邮件节点器

谢裕
2023-03-14

我正在尝试发送一封带有附件的确认电子邮件,电子邮件地址为strapi provider email NodeEmailer。该插件显然支持附件,但我不知道我应该在strapi后端的何处添加这些附件。有人知道如何将附件添加到通过strapi NodeEmailer发送的电子邮件中吗?

共有1个答案

宓跃
2023-03-14

最终解决方案相当复杂。也许有一种更简单的、没有文档记录的方法可以用Strapi实现这一点,但我不知道。

最后,我必须根据快速入门指南创建一个全新的应用编程接口,所以创建一个新的内容类型“注册”,并创建我自己的定制控制器和服务,使用strapi.plugins['email']strapi.plugins[用户权限]

Strapi会自动为您生成模型、文档和路线,但您必须编辑控制器和服务。

register/config/routes.json

{
      "method": "POST",
      "path": "/registers",
      "handler": "Register.create",
      "config": {
        "policies": [],
        "description": "Register a user"
      }
    },

register/controllers/register.js

module.exports = {
  create: async ctx => {
    try {
      let addUser = await strapi.services.register.registerUser(
        ctx.request.body
      );
      let sendEmail = await strapi.services.register.sendEmail(
        ctx.request.body
      );
      ctx.send({
        user: addUser,
        email: sendEmail
      });
    } catch (err) {
      console.log(err);
    }
  }
};

register/services/register.js(确保公用文件夹中有图像)

'use strict';
const path = require('path');

module.exports = {
  registerUser: async data => {
    let result = await strapi.plugins['users-permissions'].services.user.add({
      username: data.username,
      email: data.email,
      password: data.password
    });
    return result;
  },
  sendEmail: async data => {
    console.log(__dirname);
    let result = await strapi.plugins['email'].services.email.send({
      to: data.email,
      from: 'whatever@whatever.com',
      replyTo: 'whatever@whatever.com',
      subject: 'Use strapi email provider successfully',
      text: 'Hello world foo!',
      html: 'Embedded image: <img src="cid:my_logo@nodemailer.com"/>',
      attachments: [
        {
          filename: 'surmile_logo.PNG',
          path: path.join(
            __dirname + '/../../../public/uploads/my_logo.png'
          ),
          cid: 'my_logo@nodemailer.com'
        }
      ]
    });
    return result;
  }
};

然后strapi buildstrapi start发布到http://localhost:1337/registers 使用json正文

{
  "username": "sausage",
  "email": "blah@gmail.com",
  "password": "123456"
}

确保您的客户端配置正确

 类似资料:
  • 我有一个关于Strapi电子邮件插件的问题。我想使用Nodemailer。当我用邮递员测试它时,我得到了错误500。我是否用错误的格式编写了PostScript JSON? 提前感谢! 本杰明

  • 问题内容: 我正在使用sendgrid发送电子邮件,并且使用以下代码可以正常工作,但没有附件。 但是我需要发送附件,因此我搜索了github源和Web文档API,由于某种原因,没有javadocs,但是有一个示例GitHub sendgrid, 所以我一直在尝试直到它起作用为止,我缩小了一些异常和响应代码,起初我是被禁止的未经授权,最好是响应202,表示有效且已排队(在此处检查),这是我的代码发送

  • 问题内容: 我想发送带有PDF附件的电子邮件。我创建了PDF文件,然后执行了以下操作,但我认为这是错误的: 在发送电子邮件之前,我可以看到附件,但是当我发送电子邮件时,它的发送没有附件,这是因为我没有正确附加文件。 问题答案: 您错了。使用代替。

  • 问题内容: 有没有办法将图像附加到用PHP创建的html格式的电子邮件中? 我们需要确保在发送给可能在阅读电子邮件时无法访问Internet的客户的电子邮件上带有公司徽标(显然,他们可以下载文件)。 问题答案: 尝试使用PEARMail_Mime软件包,该软件包可以为您嵌入图像。 您需要使用addHTMLImage()方法并传递内容ID(cid),这是一个唯一的文本字符串,您还将在img的src属

  • 在我之前的帖子中,我问了关于附件的电子邮件。这是我第一次做。简单地说,我不知道怎么做。我做了一些教程等,但它似乎不工作。 我有一个联系页面工作,我会写下以下信息。它正在工作,但我需要添加一个附件 这里是链接 http://jsfiddle.net/misaki03/e7mwn93u/ 我被告知使用PHPMailer,我如何在我的代码中添加它。这里提到的一个注释需要代码。但不确定我还应该添加什么,因

  • 我试图发送一个附加的json文件到电子邮件,但是由于某种原因,在发送/创建电子邮件时,json文件没有被附加。注意:我不希望用户选择要附加的文件,我希望它被固定/自动设置。 我有以下权限在我的 还有密码 编辑1:在做了@piyushpk建议的建议更改后,我现在在选择电子邮件应用程序时会出现以下错误: 然而,根据我的打印声明,文件大小只有69KB。。。