无法加载电子邮件提供商“nodemailer”(Strapi)

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

我正在尝试使用 Nodemailer 设置 Strapi 应用程序。

我已经使用

yarn add @strapi/provider-email-nodemailer
添加了nodemailer依赖项,如官方页面所述。之后,我将以下配置添加到我的
plugins.js
文件中(我已将敏感信息替换为
XXXXXXXX
):

module.exports = ({ env }) => ({
    email: {
        config: {
            provider: 'nodemailer',
            providerOptions: {
                host: env('SMTP_HOST', 'XXXXXXXX'),
                port: env('SMTP_PORT', 587),
                auth: {
                    user: env('SMTP_USERNAME', 'XXXXXXXX'),
                    pass: env('SMTP_PASSWORD', 'XXXXXXXX'),
                },
                secure: true
            },
            settings: {
                defaultFrom: 'XXXXXXXX',
                defaultReplyTo: 'XXXXXXXX',
            },
        },
    },
});

但是当我尝试用

yarn develop
绑带时,我收到以下错误消息:

C:\Dev\Strapi\Projects\strapi>yarn develop
yarn run v1.22.15
$ strapi develop
Building your admin UI with development configuration ...
Admin UI built successfully
[2021-12-27 23:27:51.485] debug: ⛔️ Server wasn't able to start properly.
[2021-12-27 23:27:51.487] error: Could not load email provider "nodemailer".
Error: Could not load email provider "nodemailer".
    at createProvider (C:\Dev\Strapi\Projects\strapi\node_modules\@strapi\plugin-email\server\bootstrap.js:23:11)
    at Object.module.exports [as bootstrap] (C:\Dev\Strapi\Projects\strapi\node_modules\@strapi\plugin-email\server\bootstrap.js:31:37)
    at Object.bootstrap (C:\Dev\Strapi\Projects\strapi\node_modules\@strapi\strapi\lib\core\domain\module\index.js:40:47)
    at Object.bootstrap (C:\Dev\Strapi\Projects\strapi\node_modules\@strapi\strapi\lib\core\registries\modules.js:28:19)
    at async Strapi.runLifecyclesFunctions (C:\Dev\Strapi\Projects\strapi\node_modules\@strapi\strapi\lib\Strapi.js:463:5)
    at async Strapi.bootstrap (C:\Dev\Strapi\Projects\strapi\node_modules\@strapi\strapi\lib\Strapi.js:401:5)
    at async Strapi.load (C:\Dev\Strapi\Projects\strapi\node_modules\@strapi\strapi\lib\Strapi.js:410:5)
    at async Strapi.start (C:\Dev\Strapi\Projects\strapi\node_modules\@strapi\strapi\lib\Strapi.js:161:9)
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

我做错了什么?配置看起来很简单,所以我不知道出了什么问题。

node.js nodemailer strapi
2个回答
0
投票

你应该安装--yarn add nodemailer 并将其添加到您的发送电子邮件服务

 var mailObj = {
          to: email,
          subject: template.name,
          from: process.env.FROM_MAIL,
          html: content
        }
    
        let config = {
            mail: {
                type: 'smtp',
                host: process.env.MAIL_HOST,
                secure: false,
                port: 587,
                tls: {
                  rejectUnauthorized: false
                },
                auth: {
                  user: process.env.MAIL_USERNAME,
                  pass: process.env.MAIL_PASSWORD
                }
              }
    let transporter = nodemailer.createTransport(config.mail);
await transporter.sendMail(mailObj);

这将发送一封邮件


-1
投票

您需要删除配置部分:

email: {
  provider: 'nodemailer',
  providerOptions: {
    host: env('SMTP_HOST', 'smtp.xxxxxx.xx'),
    port: env('SMTP_PORT', xxx),
    secure: true,
    auth: {
      user: env('SMTP_USERNAME'),
      pass: env('SMTP_PASSWORD'),
    },
  },
  settings: {
    defaultFrom: env('SMTP_FROM_EMAIL'),
    defaultReplyTo: env('SMTP_REPLY_EMAIL'),
  },
},

UPD:抱歉,我现在明白我使用了这个包 https://www.npmjs.com/package/strapi-provider-email-nodemailer 并且你使用了这个 https://www.npmjs.com/package /@strapi/provider-email-nodemailer

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