如何在从前端提交表单的同时在strapi cms中发送邮件

问题描述 投票:0回答:2

使用strapi版本4,尝试用这个来发送邮件,但对我不起作用。

https://strapi.io/blog/how-to-create-and-use-sms-and-email-services-in-strapi-1

您能否向我解释一下如何覆盖 Strapi cms 中的创建方法。

content-management-system strapi mail-server
2个回答
2
投票

您可以使用 Nodemailer 或 Sendgrid,我将在本例中使用 Nodemailer,但我个人更喜欢 SendGrid。

通过 ssh 连接到您的 Strapi 服务器

  • 安装nodemailer:npm i @strapi/provider-email-nodemailer

  • 选择 config 文件夹/plugins.js - 如果没有,您可以将其创建为新文件

复制此:

module.exports = ({ env }) => ({
  // ...
  email: {
    config: {
      provider: 'nodemailer',
      providerOptions: {
        host: env('SMTP_HOST', 'smtp.example.com'),
        port: env('SMTP_PORT', 587),
        auth: {
          user: env('SMTP_USERNAME'),
          pass: env('SMTP_PASSWORD'),
        },
      },
      settings: {
        defaultFrom: '[email protected]',
        defaultReplyTo: '[email protected]',
      },
    },
  },
});
  • 在你的项目中有一个 .env 文件,打开它并复制:

    EMAIL_PROVIDER=nodemailer EMAIL_SMTP_HOST=sandbox.smtp.mailtrap.io EMAIL_SMTP_PORT=2525 EMAIL_SMTP_USER=your_mailtrap_user EMAIL_SMTP_PASS=您的邮件陷阱密码 [电子邮件受保护] [电子邮件受保护]

注意,我在这里使用 mailtrap 进行测试,您可以 在这里注册

  • 电子邮件测试
  • 添加收件箱
  • 在右侧Integrations选择nodemailer,您将看到密码和用户

返回您的 Strapi 项目 src/api/选择您的集合类型,用于存储从前端/内容类型发送的数据

在内容类型中创建一个名为 lifecycles.js 的新文件并复制以下内容:

module.exports = {
  async afterCreate(event) {
    const { result } = event;
    try {
      await strapi.plugins['email'].services.email.send({
        to: '[email protected]',
        from: `[email protected]`,
        subject: `This is a test mail`,
        html: `Hello world ${result.name}` //<- (you'll need a name field in strapi collection type to display this data)
      });
    } catch (err) {
      console.log(err);
    }
  },
};

现在每次有新帖子从您的前端发送到 Strapi 时,您都会收到一封发送到您的 mailtrap 帐户的电子邮件,稍后您可以使用真正的 SMTP 服务器而不是 mailtrap。 您也可以在 Strapi 管理面板设置/电子邮件插件 - 配置

中进行测试

plugins.js,lifecycles.js .env

希望有帮助!


0
投票

致所有使用 Strapi V5 看到这篇文章的人

有一个关于如何在不使用凭据的情况下设置 Gmail 帐户的精彩指南:https://medium.com/@nickroach_50526/sending-emails-with-node-js-using-smtp-gmail-and-oauth2-316fe9c790a1

© www.soinside.com 2019 - 2024. All rights reserved.