/Mail-em

Hassle-free mail-merge with personalized image support

Primary LanguageJavaScript

Mail-em

A simple web app to perform fast and hassle-free mail-merge with personalized image support.

Usage

1. Upload recipient information

Upload a spreadsheet containing the recipient information that you intend to use in the email content. All the column headers in the spreadsheet can be used as variables in the email's subject, content and SVG attachments. Example:

to/cc/bcc name score
a@b.in Catalina 81
b@c.in,c@d.in Camron 39
devonte@mail-em.com Devonte 80
required

2. Upload email content

Upload a text or html file containing the message that you intend to send in the email body. Example:

Hello {{name}},
  You have received a score of {{score}} in the CS 101 Finals Examination.

3. Upload attachments

All constraints and limits setup by Gmail are applicable. SVG files can be used as templates by adding variables in the code.

PRO TIP: Presentation programs like PowerPoint, Slides, Keynote, etc. support exporting slides as SVG files.

Example:

<svg xmlns="http:Hwww.w3.org/2000/svg" version="1.1" width="200" height="120">      
  <rect width="200" height="120" fill="black"/> 
  <text x="60" y="60" fill="white"> 
    {{ name }} 
  </text>
</svg> 

Local Setup

  1. Run npm i or yarn in the cloned directory
  2. Create a .env file and assign a Prisma-compliant database url to the variable DATABASE_URL
  3. Create a .env.local file and add the following environment variables
    GOOGLE_CLIENT_ID=
    GOOGLE_CLIENT_SECRET=
    NEXTAUTH_URL=
    SECRET=
    DATABASE_URL=
    
  4. Run npx prisma generate to generate schema definitions in ts. (Optional)
  5. Run yarn dev to start the dev server on localhost

Technologies used

image image image image image image