<commit_before># How to catch outgoing emails locally (for email workflows)

> **Note:** This is an **optional** step - Only required when working with email workflows

## Introduction

Some of the email workflows, like updating an user's email, requires the back-end api-server to send out emails. While developing you can use a tool to catch these emails locally, instead of having to use an email provider and send an actual email. MailHog is one such email testing tool for developers, that will catch the emails your local freeCodeCamp instance is sending.

## Installing MailHog

How you install and run MailHog is dependent upon your OS

- [Installing MailHog on macOS](#installing-mailhog-on-macos)
- [Installing MailHog on Windows](#installing-mailhog-on-windows)<commit_msg>Update line 7 to change 'an' with 'a' (#19586)<commit_after># How to catch outgoing emails locally (for email workflows)

> **Note:** This is an **optional** step - Only required when working with email workflows

## Introduction

Some of the email workflows, like updating a user's email, requires the back-end api-server to send out emails. While developing you can use a tool to catch these emails locally, instead of having to use an email provider and send an actual email. MailHog is one such email testing tool for developers, that will catch the emails your local freeCodeCamp instance is sending.

## Installing MailHog

How you install and run MailHog is dependent upon your OS

- [Installing MailHog on macOS](#installing-mailhog-on-macos)
- [Installing MailHog on Windows](#installing-mailhog-on-windows)
{'fraction_non_alphanumeric': 0.065625, 'fraction_numerical': 0.00375, 'mean_word_length': 4.821818181818182, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 5, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6261441', 'n_tokens_mistral': 433, 'n_tokens_neox': 407, 'n_words': 223}