# assumpta-core [](https://hackage.haskell.org/package/assumpta-core) [](https://travis-ci.com/phlummox/assumpta-core) [](https://circleci.com/gh/phlummox/assumpta-core)
A library for constructing SMTP clients, which provides the core functionality
for [assumpta](https://hackage.haskell.org/package/assumpta).
It provides a monad transformer and an mtl-style class for sending SMTP
commands (including `STARTTLS`) to a server and checking for expected
responses, over some abstract connection type.
It does not provide a concrete implementation
which can actually be used to communicate over
a network - for that, see the
[assumpta](https://hackage.haskell.org/package/assumpta) package.
## Installation
`assumpta-core` can be installed in the standard way using `stack`
or `cabal` (e.g. `stack install assumpta-core`).
## Usage
See the [assumpta](https://hackage.haskell.org/package/assumpta) package
for examples of usage.
Typically, you will want to:
- write an instance of the `Connection` class in
[Network.Mail.Assumpta.Connection](http://hackage.haskell.org/package/assumpta/docs/Network-Mail-Assumpta-Connection.html),
providing a concrete implementation in terms of some networking
library.
([assumpta](https://hackage.haskell.org/package/assumpta) contains
one based on
[connection](https://hackage.haskell.org/package/connection).)
- for convenience, write a type synonym for the `SmtpT` transformer,
specialized over your new `Connection` instance
(`MySmtpT = SmtpT MyConnection`).
- And that should be enough for you to start communicating
with a server. See the examples in
[assumpta](https://hackage.haskell.org/package/assumpta) for more
details.
## FAQ
- Q. Why the name 'Assumpta'?
A. Dunno, I just like it as a name. It means "assumption" you know.
I find I make many of those when programming.
## Acknowledgements
Many thanks to
[Alexander Vieth](https://github.com/avieth)
(author of [smtp-mail-ng](http://hackage.haskell.org/package/smtp-mail-ng)),
and to [Jason Hickner](https://github.com/jhickner) and
[Matt Parsons](https://github.com/parsonsmatt)
(authors of [smtp-mail](http://hackage.haskell.org/package/smtp-mail)),
whose packages provided the original basis for the
assumpta-core code.