Skip to content

Email ​

services/email.service.js sends transactional email through Nodemailer.

Configuration ​

VariableNotes
SMTP_HOSTUnset → emails are logged at info level with their text body
SMTP_PORT465 enables implicit TLS; anything else uses STARTTLS if offered
SMTP_USER, SMTP_PASSOptional credentials
MAIL_FROMSender header

The transporter is created lazily and reused.

Messages ​

FunctionTriggerLink
sendVerificationEmailRegistration, resend${CLIENT_URL}/verify-email?token=…
sendPasswordResetEmailForgot password${CLIENT_URL}/reset-password?token=… (1 hour)

Each has a plain-text and simple HTML version. Links use the first origin in CLIENT_URL.

Failure handling ​

  • Registration doesn't wait for the verification email; failures are logged.
  • Resend and password reset await delivery, so SMTP errors surface as 500.

Local development ​

Without SMTP, copy the verification link from the server log:

[email disabled] Verify your Nexlm email address → you@example.com

Nexlm is a peer-to-peer facilitator and never holds customer Naira.