Can't find nodemailer-smtp-transport

NodeBB Development
  • Getting the following error in my log file.

    Error: Cannot find module 'nodemailer-smtp-transport'

    Any ideas?

  • Hi @shinyidol I don't believe any of our code or bundled plugins use this package. If you have some sort of emailer plugin installed, you might want to reinstall those dependencies if they're missing.

  • Additionally, with the latest nodebb, smtp emails are handled in core. You can set up a custom smtp setting or select from a list of presets.

  • I ended up doing a ./nodebb upgrade and it appears to have solved the issue.

    Getting NodeBB setup is not an easy task as it once was. Seriously it is one step forward two steps back with everything. I want to love it, but it is making it hard.

  • @shinyidol maybe you can help me out here. Can you answer a few questions for me?

    • When was NodeBB setup easier to do?
    • How was it easier back then?
    • How do you suggest we make it easier now?
    • What features would significantly improve your experience with NodeBB?

    I ask these questions because as a developer I've learned how to install NodeBB so well I can practically install it in my sleep. So when people talk about the pains of installing NodeBB, I have a hard time empathizing or understanding where they struggle.

    A time ago, I think NodeBB was much more difficult to install. We required imagemagick and compiled binaries which needed to be built on systems, making Windows installations even more difficult than they are now. Making emails work required a plugin regardless of what you were doing, there was no easy access to SMTP or sendmail.

    Thanks.

  • @PitaJ replies below.

    When was NodeBB setup easier to do?

    I can't remember the specific version, but I've been experimenting with nodebb since 2014, so 0.4.

    How was it easier back then?

    Previously I was able to get it running out of the box was pretty straightforward. Example I didn't have any issues previously with SMTP setup, but this time I had to pull again. I think there was a more fever for plugin development so lots of people were creating things and because it was new and exciting the plugins were maintained.

    I think other things is I feel I need to constantly have to build now. I was used to the restarts before, but my latest tests I have had to build a lot more.

    How do you suggest we make it easier now?

    Look to deployment process similar to Ghost or Discourse. Both initial setup for core services such as domain, https, email and such are handled extremely easy and straightforward. Once setup, an admin can go in and fine tune anything they want.

    What features would significantly improve your experience with NodeBB?

    Honestly, it isn't a software feature as NodeBB core is pretty strong. It is more moderating the plugins if they work on the active version. Either look to a system like Wordpress which each plugin gives a clear "Last updated" and "Tested on #.#.#" to provide confidence that something will work. Example, I use SES for email and was excited to see a plugin for SES, but that plugin was abandoned and hasn't been maintained to coincide with any changes to NodeBB core.

    If there was something in core that I would like added it would be greater moderation tools which I mention here.

    Making emails work required a plugin regardless of what you were doing, there was no easy access to SMTP or sendmail.

    Why is such an important service not just built into core? If it needs to be a plugin then have it be an 'official plugin' similar to what Discourse does with their Voting and Solved plugins. Which all that means is they understand the community importance of the plugin and make sure it is working with each update.

    NodeBB is a very exciting platform, but it feels like a general excitement to build on it was lost leaving tons of handy plugins to go abandoned. The last thing I'd want to see is NodeBB to end up like Vanilla with the SaaS version being stable and feature filled with the open source/self-deployed being entirely community driven including having to replicate features.

  • @shinyidol I want to start off by answering this question:

    Why is such an important service not just built into core?

    It is. SMTP and sendmail are both supported as part of core. You don't need a plugin anymore. In fact, the plugin readme now has a deprecation notice explaining this.

    If it needs to be a plugin then have it be an 'official plugin' similar to what Discourse does with their Voting and Solved plugins.

    nodebb-plugin-emailer-local (badly named) was an official plugin. Any plugin under the NodeBB org on Github is an officially supported plugin, assuming it isn't explicitly deprecated.

    Whether that promise is lived up to is a different thing entirely.

    Either look to a system like Wordpress which each plugin gives a clear "Last updated" and "Tested on #.#.#" to provide confidence that something will work.

    We do have something like this. It relies on the plugin developer providing a compatibility entry in package.json

    I do think we could improve with how we display that information to the admins, and possibly use a more crowd-sourced solution, like plugin flagging.

    Look to deployment process similar to Ghost or Discourse.

    I think it would be good to have an official Docker image to make self-installation easier.

  • I'm personally not a fan of containers, but that's because I like to maintain control over my deployment. You sacrifice a certain amount of control to gain a different kind of control, and so I'm more comfortable setting things up on a bare VPS.

    Certainly many don't share this view, which is why NodeBB comes with a Dockerfile. I'm perfectly fine with promoting Ben Lubar's image to become the official image, as he uses our Dockerfile as far as I know.


Suggested Topics