GithubHelp home page GithubHelp logo

doudz / mailmerge Goto Github PK

View Code? Open in Web Editor NEW

This project forked from siefkenj/mailmergep

0.0 0.0 0.0 3.57 MB

Mail Merge add-on for Thunderbird by Alexander Bergmann

License: GNU General Public License v3.0

JavaScript 75.74% CSS 15.06% HTML 9.21%

mailmerge's Introduction

Build Status

Mail Merge P

Mail Merge P (Mail Merge with Preview) is a Thunderbird add-on to send bulk emails based off information provided in a spreadsheet.

Mail Merge P uses the nunjucks templating engine to fill email templates based on data provided by a spreadsheet.

Usage

Prepare a spreadsheet with a single header row. Any templating variable you wish to be filled, wrap in {{..}}. For example, if your spreadsheet has headers name and email, you can use {{name}} and {{email}} in the body/subject/to/cc/bcc fields of your email. Mail Merge P will then substitute data from the spreadsheet into these fields.

You can use the full power of the nunjucks templating engine, but be aware that all data from a spreadsheet is interpreted as a string.

Install

You can play around with the main ui-component in the browser: https://siefkenj.github.io/MailMerge/browser-iframe-server.html

You can also download the latest build: https://siefkenj.github.io/MailMerge/[email protected]

Mail Merge P is based off of Mail Merge by Alexander Bergmann https://addons.thunderbird.net/en-US/thunderbird/addon/mail-merge/

Building

Build the entire extension with

npm install
npm run build
npm run build-addon
npm run package-addon

The extension will be located in the current directory and called [email protected].

Development

Mail Merge P is divided into two parts: the html interface (located in html-src) and the Thunderbird plugin (located in thunderbird-src). Most UI and backend work is handled by the html components. The Thunderbird component runs the html component in an iframe and uses message passing to communicate with the iframe.

This split means that the bulk of Mail Merge P can be developed in the browser without Thunderbird.

To run thunderbird and force a reload of all extension content, do

thunderbird -purgecaches

Developing the HTML UI

A browser-based simulation of the Mail Merge P Thunderbird API is provided by browser-iframe-server.html. To develop in the browser run the commands

npm install
npm start

Then open localhost:3000/browser-iframe-server.html in your browser (with 3000 replaced by the port of the node server).

The UI is developed using React and Redux with the helper EasyPeasy.

Developing the Thunderbird Extension

Copy or link the contents of thunderbird-src to [email protected] in your Thunderbird profile/extensions directory. Then restart Thunderbird and activate the extension.

You can open the Thunderbird debugging console with Ctrl+Shift+I. Once in the debugging console, you can manually open dialogs with the window.open command. For example,

dgl = window.open("chrome://mailmergep/content/iframe-wrapper.xul", "test", "chrome")

will open and run iframe-wrapper.xul, which is the main UI component of Mail Merge P. You can then poke around dgl for variables and functions stored in the extension's scope.

mailmerge's People

Contributors

siefkenj avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.