# Bamboo.SMTPAdapter

[![Build Status](](
[![Inline docs](](
[![Module Version](](
[![Hex Docs](](
[![Total Download](](
[![Last Updated](](

An adapter for the [Bamboo]( email app.

## Installation

The package can be installed as:

1. Add `bamboo_smtp` to your list of dependencies in `mix.exs`:

   def deps do
     [{:bamboo_smtp, "~> 4.1.0"}]

2. Add `:bamboo` and `:bamboo_smtp` to your list of applications in `mix.exs`:

   def application do
     [applications: [:bamboo, :bamboo_smtp]]

3. Setup your SMTP configuration:

   # In your config/config.exs file
   config :my_app, MyApp.Mailer,
     adapter: Bamboo.SMTPAdapter,
     server: "smtp.domain",
     hostname: "your.domain",
     port: 1025,
     username: "", # or {:system, "SMTP_USERNAME"}
     password: "pa55word", # or {:system, "SMTP_PASSWORD"}
     tls: :if_available, # can be `:always` or `:never`
     allowed_tls_versions: [:"tlsv1", :"tlsv1.1", :"tlsv1.2"], # or {:system, "ALLOWED_TLS_VERSIONS"} w/ comma separated values (e.g. "tlsv1.1,tlsv1.2")
     tls_log_level: :error,
     tls_verify: :verify_peer, # optional, can be `:verify_peer` or `:verify_none`
     tls_cacertfile: "/somewhere/on/disk", # optional, path to the ca truststore
     tls_cacerts: "…", # optional, DER-encoded trusted certificates
     tls_depth: 3, # optional, tls certificate chain depth
     tls_verify_fun: {&:ssl_verify_hostname.verify_fun/3, check_hostname: ""}, # optional, tls verification function
     ssl: false, # can be `true`
     retries: 1,
     no_mx_lookups: false, # can be `true`
     auth: :if_available # can be `:always`. If your smtp relay requires authentication set it to `:always`.

   *Sensitive credentials should not be committed to source control and are best kept in environment variables.
   Using `{:system, "ENV_NAME"}` configuration is read from the named environment variable at runtime.*

   The *hostname* option sets the FQDN to the header of your emails, its optional, but if you don't set it, the underlying `gen_smtp` module will use the hostname of your machine, like `localhost`.

4. Follow Bamboo [Getting Started Guide](

5. **Optional** Set `BambooSMTP.TestAdapter` as your test adapter:

   # In your config/config.exs file
   if Mix.env() == :test do
     config :my_app, MyApp.Mailer, adapter: MyApp.SMTPTestAdapter

## Usage

You can find more information about advanced features in the [Wiki](

## Code of Conduct

By participating in this project, you agree to abide by its [CODE OF CONDUCT](

## Contributing

You can see the specific [CONTRIBUTING]( guide.

## License

Bamboo SMTPAdapter is released under [The MIT License (MIT)](