diff --git a/doc/contributors/email_testing.md b/doc/contributors/email_testing.md index 90c57c23..a4d325c5 100644 --- a/doc/contributors/email_testing.md +++ b/doc/contributors/email_testing.md @@ -1,32 +1,51 @@ # Local Email Testing -- The local email testing is done through [MailHog](https://github.com/mailhog/MailHog) which provides email testing through a local email server. -## Prerequisites -- Following the general instruction i.e. adding in `volatile/config/config.json` - ```json - "email": { - "host": "localhost", - "port": 1025 - } - ``` -- Having MailHog installed in your machine. + +This guide describes how to set up and use [MailHog](https://github.com/mailhog/MailHog) for local email testing in Puter development. MailHog provides a local email server that captures outgoing emails for testing purposes without actually sending them to real recipients. + +## Setup + +### 1. Configure Puter + +Add the following configuration to your `volatile/config/config.json` file: + +```json +"email": { + "host": "localhost", + "port": 1025 +} +``` + +### 2. Install MailHog + +Download and run MailHog on your local machine: + ```bash # Install MailHog wget https://github.com/mailhog/MailHog/releases/download/v1.0.1/MailHog_linux_amd64 chmod +x MailHog_linux_amd64 ./MailHog_linux_amd64 ``` -- Nodemailer to send email to SMTP server running in your machine. - To install nodemailer: -``` zsh + +### 3. Install Nodemailer + +Install Nodemailer to send test emails to the SMTP server: + +```bash npm install nodemailer ``` -## Access Web Interface -The MailHog UI can be accessed at [http://127.0.0.1:8025/](http://127.0.0.1:8025/). -All sent emails and their recipients can be viewed here. +## Using MailHog -## Using Nodemailer to Send Emails via SMTP, which will appear in the MailHog instance. -- Using nodemailer as the transport method to send emails using SMTP which would be visible in MailHog instance. +### Access Web Interface + +Once MailHog is running, access the web interface at: +[http://127.0.0.1:8025/](http://127.0.0.1:8025/) + +All captured emails and their recipients will be displayed in this interface. + +### Sending Test Emails with Nodemailer + +Use Nodemailer as the transport method to send emails via SMTP. These emails will be captured by MailHog: ```javascript import nodemailer from "nodemailer"; @@ -48,14 +67,21 @@ transporter.sendMail(mailOptions) .then(info => console.log("Email sent:", info.response)) .catch(error => console.error("Error:", error)); ``` -- Once the email is sent, you can see it in the MailHog web interface as shown in the screenshot below. -Alt text -## TroubleShooting -- If the Mailhog is not working : -```bash -ps aux | grep MailHog -#Ensure it is running -``` +After sending an email, you can view it in the MailHog web interface: +Email in MailHog interface + +## Troubleshooting + +If you encounter issues with MailHog: + +1. Check if MailHog is running: + ```bash + ps aux | grep MailHog + ``` + +2. Ensure the correct port configurations in both MailHog and your application. + +3. Check for any error messages in the MailHog console output.