Simple Clojure library for sending email, with just one jar!
(defproject your-project "0.0.0" :dependencies [[mmemail "1.0.1"]]
…can be downloaded at clojars.org/repo/mmemail/mmemail/1.0.1/mmemail-1.0.1.jar
(use 'mmemail.core)
mmemail.core
is the only include you need. It contains only 2 methods, the fist being send-email
. It takes a map that includes all the configuration and email parameters. That’s it.
(send-email {:host "smtp.gmail.com" :port 465 :ssl true :user "road@gmail.com" :password "runner" :to "joe@acme.com" :subject "Greetings" :body "Meep Meep!"})
Most of the parameters are required, but based on your server configuration you might get away without these:
-
:ssl
-
:password
-
:subject
It also accepts the following optional parameters:
-
:from (defaults to :user)
-
:cc
-
:bcc
The recipient parameters (:to, :cc, :bcc) may be a string, for one recipient, or a sequence of strings, for multiple recipients.
It can be annoying to pass such a big map into the function, and typically you’ll want to get all the server configuration out of the way. This is where the second function of mmemail.core
(create-mailer
) comes into play.
(def my_mailer (create-mailer {:host "smtp.gmail.com" :port 465 :ssl true :user "road@gmail.com" :password "runner"}))
create-mailer
will return a new function with all the configuration baked in. So in the future, you can send email like so:
(my_mailer {:to "joe@acme.com" :subject "Greetings" :body "Meep Meep!"})
The create-mailer
accepts email parameters that will be used as defaults when the generated function is called.
(def my_mailer (create-mailer {:subject "Greetings" :body "Meep Meep!" :host "smtp.gmail.com" :port 465 :ssl true :user "road@gmail.com" :password "runner"})) (my_mailer {:to "joe@acme.com"})
Copyright 2010 Micah Martin. All Rights Reserved. MMEMail and all included source files are distributed under terms of the GNU LGPL.