The mailgun Reference Manual

This is the mailgun Reference Manual, version 0.2.0, generated automatically by Declt version 4.0 beta 2 "William Riker" on Sun Sep 15 06:02:01 2024 GMT+0.

Table of Contents


1 Introduction


2 Systems

The main system appears first, followed by any subsystem dependency.


2.1 mailgun

A thin wrapper to post HTML emails through mailgun.com

Author

Alexander Artemenko

License

Unlicense

Long Description

=========================================
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
=======

* Alexander Artemenko (svetlyak.40wt@gmail.com)

Copyright
=========

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

Version

0.2.0

Dependency

mailgun/core (system).

Source

mailgun.asd.


2.2 mailgun/core

Author

Alexander Artemenko

License

Unlicense

Dependencies
  • log4cl (system).
  • dexador (system).
  • spinneret (system).
  • secret-values (system).
Source

mailgun.asd.


3 Files

Files are sorted by type and then listed depth-first from the systems components trees.


3.1 Lisp


3.1.1 mailgun/mailgun.asd

Source

mailgun.asd.

Parent Component

mailgun (system).

ASDF Systems

3.1.2 mailgun/core/file-type.lisp

Source

mailgun.asd.

Parent Component

mailgun/core (system).

Packages

mailgun/core.

Public Interface
Internals

send-html (function).


4 Packages

Packages are listed by definition order.


4.1 mailgun/core

Source

file-type.lisp.

Nickname

mailgun

Use List

common-lisp.

Public Interface
Internals

send-html (function).


5 Definitions

Definitions are sorted by export status, category, package, and then by lexicographic order.


5.1 Public Interface


5.1.1 Special variables

Special Variable: *api-key*

This can be a string or secret-values:secret-value.

Package

mailgun/core.

Source

file-type.lisp.

Special Variable: *domain*
Package

mailgun/core.

Source

file-type.lisp.

Special Variable: *user-agent*
Package

mailgun/core.

Source

file-type.lisp.


5.1.2 Macros

Macro: send ((from email subject) &body body)

Sends HTML letter to an email.

Body of this macro should contain a markup for spinneret library. Also, it can use "htm" macro, to wrap html markup in the inner lisp constructions such as loops and conditional expressions.

Package

mailgun/core.

Source

file-type.lisp.


5.2 Internals


5.2.1 Ordinary functions

Function: send-html (from email subject html-body)
Package

mailgun/core.

Source

file-type.lisp.


Appendix A Indexes


A.1 Concepts


A.2 Functions

Jump to:   F   M   S  
Index Entry  Section

F
Function, send-html: Private ordinary functions

M
Macro, send: Public macros

S
send: Public macros
send-html: Private ordinary functions