InoMail is a simple Node.js project that allows you to send out personalized, unique emails with multiple unique and/or common file attachments. It's a versatile tool for automating email communications, suitable for various use cases such as newsletters, marketing campaigns, personalized notifications or post-event follow-ups.
- Personalized emails : Customize the content of each email based on recipient data.
- Attachments : Attach both common and recipient-specific files to your emails.
- Handlebar templates : Create and manage email templates with Handlebars.
-
Clone the repository:
git clone https://github.com/inovus-labs/inomail.git cd inomail
-
Install dependencies:
npm install
-
Create a
.env
file in the project root directory and add the following environment variables:EMAIL_USER = <your_email_address> EMAIL_PASS = <your_email_app_password> PORT = 5000
-
Populate the recipient data: Prepare a CSV or XLSX file containing recipient information, such as
full_name
,email_address
and any custom fields required for email customization.The first row of the file should contain the column names. The column names will be used as placeholders in the email templates.
For example, if you have a column named
full_name
, you can use the placeholder{full_name}
in your email templates to include the recipient's full name in the email content.Save the file in the project's
public
folder asemail_list.xlsx
. -
Add attachments: For both unique and common attachments, specify the file names in your recipient data (e.g., a column in your XLSX file). Place the files in the project's designated attachments folder.
Column names should match the subfolder names in the attachments folder (e.g., if you have a column named
asset_1
, the corresponding file should be placed in theasset_1
subfolder).Common assets are treated as unique assets for each recipient. If you want to include the same file in all emails, add a column named
common_asset
to your recipient data and place the file in thecommon_asset
subfolder. -
Customize email templates: Create HTML email templates in the project's
public
folder. Use placeholders to include recipient-specific information. Save the template asemail_content.hbs
. -
Run the project:
npm start
-
The terminal start prompting the results of the email sending process.
If you'd like to contribute to this project, please follow our contribution guidelines.
This project is licensed under the Mozilla Public License 2.0.
Feel free to customize this README to match your project's specifics. Providing clear instructions and documentation can help both you and potential users or collaborators understand and use your project effectively.