Dorian Niemiec
a63257f40e
Some checks failed
Deploy Next.js application / deploy (push) Failing after 10m4s
3.3 KiB
3.3 KiB
Configuration
This guide will walk you through the process of configuring MERNMail. The configuration is managed through environment variables, which are defined in a .env
file. An example .env.example
file is provided in the repository to help you get started.
Creating the .env
File
-
Copy the
.env.example
File: First, copy the.env.example
file to create a new.env
file in the root directory of your project:cp .env.example .env
-
Edit the
.env
File: Open the.env
file in your preferred text editor and update the values as needed.
Configuration Options
General Settings
- PORT: The port on which the MERNMail server listens.
- ATTACHMENTS_PATH: The absolute path to the directory that contains attachments. If not set, the "attachments" directory in the script root will be used.
Database Configuration
- MONGODB_CONNSTRING: The MongoDB connection string.
Encryption Settings
- ENCRYPTION_SECRETKEY: A 256-bit secret key for password encryption. You can generate this key using the command
openssl rand -base64 32
. - ENCRYPTION_IV: A 128-bit IV for password encryption. You can generate this IV using the command
openssl rand -base64 16
.
JWT Configuration
- JWT_SECRET: The secret key for JWT (JSON Web Token) authentication. You can generate this key using the command
openssl rand -base64 32
. - JWT_SECURECOOKIE: Set this to
1
if users access the webmail from HTTPS.
Email Receiving Configuration
- EMAIL_RECV_PROTOCOL: The email receiving protocol. This can be
pop3
orimap
. - EMAIL_RECV_HOST: The host for receiving emails.
- EMAIL_RECV_PORT: The port for receiving emails.
- EMAIL_RECV_TLS: Set this to
1
to enable TLS for receiving emails. - EMAIL_RECV_ALLOWBADCERTIFICATES: Set this to
1
to allow bad TLS certificates for receiving emails. - EMAIL_RECV_DISCARDDOMAIN: Set this to
1
to log into email server without the email domain in the username.
Email Sending Configuration
- EMAIL_SEND_PROTOCOL: The email sending protocol. This can be
smtp
. - EMAIL_SEND_HOST: The host for sending emails.
- EMAIL_SEND_PORT: The port for sending emails.
- EMAIL_SEND_TLS: Set this to
1
to enable TLS for sending emails. If using STARTTLS, set this to0
. - EMAIL_SEND_ALLOWBADCERTIFICATES: Set this to
1
to allow bad TLS certificates for sending emails. - EMAIL_SEND_DISCARDDOMAIN: Set this to
1
to log into email server without the email domain in the username.
Example Configuration
Here is an example of what your .env
file might look like:
PORT=3000
ATTACHMENTS_PATH=/path/to/attachments
MONGODB_CONNSTRING=mongodb://localhost:27017/mernmail
ENCRYPTION_SECRETKEY=your_256_bit_secret_key
ENCRYPTION_IV=your_128_bit_iv
JWT_SECRET=your_jwt_secret
JWT_SECURECOOKIE=1
EMAIL_RECV_PROTOCOL=imap
EMAIL_RECV_HOST=imap.example.com
EMAIL_RECV_PORT=993
EMAIL_RECV_TLS=1
EMAIL_RECV_ALLOWBADCERTIFICATES=0
EMAIL_RECV_DISCARDDOMAIN=0
EMAIL_SEND_PROTOCOL=smtp
EMAIL_SEND_HOST=smtp.example.com
EMAIL_SEND_PORT=587
EMAIL_SEND_TLS=0
EMAIL_SEND_ALLOWBADCERTIFICATES=0
EMAIL_SEND_DISCARDDOMAIN=0
Next Steps
After configuring the .env
file, you can start the MERNMail server by following the instructions in the Getting started section.