No release in over 3 years
Low commit activity in last 3 years
A simple newsletter engine for rails.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
 Dependencies

Development

Runtime

 Project Readme

Maktoub

Maktoub is a Ruby on Rails engine for email newsletters.

  • Write your newsletter as you would write any view (erb partial)
  • Maktoub sends your email in multipart as both html and text

Installation

# Add this line to your Gemfile
gem 'maktoub'

Then bundle install

Compatibility

Compatible with Rails 4+. For Rails 3.1+ use version 0.3.1

Usage

Configuration

You can run rails generate maktoub:config to generate the configuration file. This task creates a matkoub.rb initializer file (in config/initializer) Follow instructions inside the file to configure it the way you want.

Authoring

Create a newsletter as a normal view partial in app/views/maktoub/newsletters/. The subject of the newsletter will be automatically deduced from the partial's name.

Editing Styles

Create a view partial in app/views/layouts/maktoub/_styles.erb. Note that this completely overrides the styles that come with maktoub. You can copy the built-in styles and override them.

Sending messages

Maktoub comes with two rake tasks to allow you to:

  • send a test message to the "from" address of your newsletter.

    rake maktoub:test['name_of_my_newsletter_partial']
  • publish the newsletter to all your subscribers. If you have delayed_job installed then it will use it to deliver each email as a background job

     rake maktoub:mail['name_of_my_newsletter_parial']

Alternatively you have access to a Maktoub::NewsletterMailer ActionMailer object with a publish method

 Maktoub::NewsletterMailer.publish('my_newsletter_partial', name: 'User name', email: 'user@example.com')

View in browser

To be able to view your newsletter in a browser add it to routes.rb.

  • mount the engine at a path of your choice. e.g. mount Maktoub::Engine => '/'
  • you would access the newsletter at: http://example.com/<mounted_path>/newsletter/my_awesome_newletter

Contributing

Send a pull request including documentation changes and tests.

TODO

  • create github page for project
  • allow management of multiple lists
  • allow rendering of newletter from remotely hosted views (e.g. S3)