mailgun - send emails from Common Lisp!

September 6, 2018 ยท View on GitHub

========================================= mailgun - send emails from Common Lisp!

.. Everything starting from this commit will be inserted into the index page of the HTML documentation. .. include-from

This library provides an easy way to send transactional emails through http://mailgun.com.

.. note:: You don't have to setup your own SMTP servers!

      And they have a "free" plan with 10000 emails per month.

Reasoning

Previously, I used this code in one of my projects, but seems this functionality needed almost in any serious web application. So, I decided to make it available as a separate library.

Here is how to use it

First, setup an account at http://mailgun.com. You need to add your domain there and to reveive an authentication token.

.. code-block:: common-lisp

(setf mailgun:domain "mail.skazorama.ru") (setf mailgun:api-key "key-************************")

(mailgun:send ("noreply@skazorama.ru" "svetlyak.40wt@gmail.com" "Mail subject") (:h1 "This is a test letter") (:p "It is in a HTML format and supports some tags" "For example, I can make " (:b "a bold text") ".") (:p "And here we have some items, passed to the template:") (:ul (loop for item in items do (mailgun:htm (:li item)))))

Roadmap

  • Add support for styles, build them with LASS and embed into an email's markup.

.. Everything after this comment will be omitted from HTML docs. .. include-to

Building Documentation

Provide instruction how to build or use your library.

How to build documentation

To build documentation, you need a Sphinx. It is documentaion building tool written in Python.

To install it, you need a virtualenv. Read this instructions how to install it <https://virtualenv.pypa.io/en/stable/installation/#installation>_.

Also, you'll need a cl-launch <http://www.cliki.net/CL-Launch>_. It is used by documentation tool to run a script which extracts documentation strings from lisp systems.

Run these commands to build documentation::

virtualenv --python python2.7 env source env/bin/activate pip install -r docs/requirements.txt invoke build_docs

These commands will create a virtual environment and install some python libraries there. Command invoke build_docs will build documentation and upload it to the GitHub, by replacing the content of the gh-pages branch.

Authors

Copyright

Copyright (c) 2018 Alexander Artemenko (svetlyak.40wt@gmail.com)