mandrill alternatives and similar packages
Based on the "Networking" category.
Alternatively, view mandrill alternatives based on common mentions on social networks and blogs.
-
snap-core
Core type definitions (Snap monad, HTTP types, etc) and utilities for web handlers. -
call-haskell-from-anything
Call Haskell functions from any programming language via serialization and dynamic libraries -
snap-server
A fast HTTP server library, which runs Snap web handlers. -
PortFusion
Haskell-powered cross-platform transport-layer distributed reverse / forward proxy & tunneling solution – currently available for all TCP protocols (RDP, VNC, HTTP(S), SSH, ...). -
glirc
Haskell IRC library and console client - Join us on libera.chat #glirc -
io-streams
Simple, composable, and easy-to-use stream I/O for Haskell -
network-transport-zeromq
ZeroMQ transport for distributed-process (aka Cloud Haskell) -
HaskellNet
Haskell library which provides client support for POP3, SMTP, and IMAP protocols. -
ngx-export
A comprehensive web framework aimed at building custom Haskell handlers for the Nginx Web Server -
graphula
A simple interface for generating persistent data and linking its dependencies -
secure-sockets
A library for making secure connections between servers. -
http-types
Generic HTTP types for Haskell (for both client and server code) -
network-transport-tcp
TCP Realisation of Network.Transport -
linklater
A Haskell library for the Slack API (including real-time messaging!)
Collect and Analyze Billions of Data Points in Real Time
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of mandrill or a related project?
README
Haskell Client for the Mandrill JSON API
This module implement a low-level, 1:1 mapping API to the Mandrill transactional email service.
Changelog
Version 0.5.4.0
- Add
newTemplateMessage'
for sending message that uses a template whose sender address and subject are already configured in the Mandrill server. - Set
mmsg_subject
andmmsg_from_email
optional.
Version 0.5.3.6
- Allow the package to work with base >= 4.11 (Courtesy of @basvandijk)
- Support building with LTS 13.29
Version 0.5.3.5
- Replaced dependency on lens with microlens (Courtesy of @tom-bop)
Version 0.5.3.3
- Relaxed upper bound on Aeson (see: fpco/stackage/issues/3337)
Version 0.5.3.2
- Relaxed upper bound on Aeson (see: fpco/stackage/issues/2449)
Version 0.5.3.1
- Relaxed upper bound on Aeson (see: fpco/stackage/issues/2177 )
Version 0.5.3.0
- Added support for webhooks (thanks to @mwotton).
Version 0.5.2.3
- Added support for aeson-1.0.0.0 by relaxing its upper bound.
Version 0.5.2.2
- Added support for QuickCheck-2.9 by relaxing its upper bound.
Version 0.5.2.1
- Added
Functor
,Foldable
andTraversable
instances toMandrillResponse
(Courtesy of @dredozubov)
Version 0.5.2.0
- Added inbound calls (Courtesy of @mwotton)
Version 0.5.1.0
- Relaxed the constraint on
aeson
to allow0.11.0.0
.
Version 0.5.0.0
Changed the
MandrillHeaders
type synonym fromValue
toObject
.Changed the
mmsg_metadata
andmmdt_values
fields fromMandrillVars
toObject
.Changed the
mmsg_global_merge_vars
andmmvr_vars
fields from[MandrillVars]
to[MergeVar]
Added the
MergeVar
data type:
data MergeVar = MergeVar {
_mv_name :: !Text
, _mv_content :: Value
}
- Removed the
MandrillVars
type synonym.
Version 0.4.0.0
- Modified the
Base64ByteString
type to accept another constructor. This allows the user to pass already-encoded Base64 strings which might be coming upstream.
Example
This package was built with pragmatism and reuse in mind. This means this API comes in two flavours: an IO-based and an handy monad transformer which can be plugged in your stack of choice. Example:
{-# LANGUAGE OverloadedStrings #-}
import Text.Email.Validate
import Network.API.Mandrill
main :: IO ()
main = do
case validate "[email protected]" of
Left err -> print $ "Invalid email!" ++ show err
Right addr -> runMandrill "MYTOKENHERE" $ do
let msg = "<p>My Html</p>"
res <- sendEmail (newTextMessage addr [addr] "Hello" msg)
case res of
MandrillSuccess k -> liftIO (print k)
MandrillFailure f -> liftIO (print f)
Supported API versions
1.0 (partially)
- Users call - 100%
- info.json
ping.json(as doesn't return valid json!)- ping2.json
- senders.json
- Messages call
- send.json
- Senders call
- verify-domain.json
- Inbound call
- add-route.json
- add-domain.json
Testing online API
To test the online API, first build the package with tests enabled:
cabal install --enable-tests
Then export an environment variable with your Mandrill Test token:
export MANDRILL_API_KEY="YOURKEYGOESHERE"
And finally execute the testsuite:
cabal test
Contributions
This library scratches my own itches, but please fork away! Pull requests are encouraged to implement the part of the API you need.