cabal-version: >=1.10
name: postie
version: 0.6.0.2
build-type: Simple
license: BSD3
license-file: LICENSE
maintainer: alex.biehl@gmail.com
synopsis: SMTP server library to receive emails from within Haskell programs.
category: Network
description: `postie` is a little smtp server library for receiving emails. It is currently
             in a very early stage and not yet fully standard compatible although the standard
             protocol is already supported.
             .
             * At the time of writing parameters on smtp commands can not be parsed.
             .
             * Handler functions need to return more detailed information to cancel a transaction.
             .
             `postie` supportes hooks on key commands in an smtp session like
             .
             * on connection open and close
             .
             * on /MAIL FROM/ command e.g. to intercept transaction if sender is blacklisted
             .
             * on /RCPT TO/ command e.g. to check if recipient is existent on your server
             .
             * and many more
             .
             To run `postie` you only need to supply a function which takes a `Mail` and
             return `Accepted` or `Rejected`. `mailBody` is a `pipes` `Producer` which
             streams the encoded body directly to your application code. The body is not
             parsed by `postie` since it depends on what the application wants to do with
             the mail data. Eventually I will create a seperate package for parsing mime
             messages with `pipes-parse` when postie becomes more stable and standard compliant.
author: Alex Biehl
extra-source-files:
  examples/tls/server.crt,
  examples/tls/server.key

source-repository head
  type: git
  location: https://github.com/alexbiehl/postie.git

flag examples
  Description:  Build examples
  Default: False
  Manual: True

library
  build-depends:
    attoparsec           >= 0.13.2 && < 0.14,
    base                 >= 4.13.0 && < 4.14,
    bytestring           >= 0.10.10 && < 0.11,
    data-default-class   >= 0.1.2 && < 0.2,
    mtl                  >= 2.2.2 && < 2.3,
    network              >= 3.1.1 && < 3.2,
    pipes                >= 4.3.14 && < 4.4,
    pipes-parse          >= 3.0.8 && < 3.1,
    tls                  >= 1.5.4 && < 1.6,
    uuid                 >= 1.3.13 && < 1.4
  exposed-modules: 
    Network.Mail.Postie
    Network.Mail.Postie.Address
    Network.Mail.Postie.Types
    Network.Mail.Postie.SessionID
    Network.Mail.Postie.Settings
  exposed: True
  buildable: True
  default-language: Haskell2010
  default-extensions: Rank2Types OverloadedStrings DeriveDataTypeable
  hs-source-dirs: src
  other-modules: 
    Network.Mail.Postie.Connection
    Network.Mail.Postie.Pipes
    Network.Mail.Postie.Protocol
    Network.Mail.Postie.Session
  ghc-options:
    -Wall
    -Wcompat
    -Widentities
    -Wincomplete-record-updates
    -Wincomplete-uni-patterns
    -Wpartial-fields
    -Wredundant-constraints

executable postie-example-simple
  build-depends:
    postie,
    base                 >= 4.13.0 && < 4.14,
    pipes-bytestring     >= 2.1.6 && < 2.2
  if flag(examples)
    buildable: True
  else
    buildable: False
  main-is: Simple.hs
  buildable: True
  default-language: Haskell2010
  hs-source-dirs: examples

executable postie-example-tls
  build-depends:
    postie,
    base                 >= 4.13.0 && < 4.14,
    pipes-bytestring     >= 2.1.6 && < 2.2
  if flag(examples)
    buildable: True
  else
    buildable: False
  main-is: TLS.hs
  buildable: True
  default-language: Haskell2010
  hs-source-dirs: examples