BambooGmail

Gmail adapter for Bamboo

Why not just use SMTP?

Starting in 2020, Google is deprecating the use of its Gmail API with SMTP usage. This adapter allows GSuite account holders to use Bamboo in light of this deprecation by using OAuth2 for authentication.


Preconditions

There are a few preconditions that must be met before this adapter can be used to send email:

  1. Admin access to a GSuite account
  2. Implement server-side authorization
  3. Grant the service account domain-wide authority
  4. Authorize API client with required scopes

Installation

The package can be installed by adding bamboo_gmail to your list of dependencies in mix.exs:

def deps do
  [
    {:bamboo_gmail, "~> 0.1.0"}
  ]
end

Some application settings must be configured. See the example section below.


Configuration

Required GmailAdapter settings:

adapter:

sub:

Required Dependency settings:

json:

Optional settings:

sandbox:


Note:

Secrets such as the service account sub, and the auth credentials should not be commited to version control.


Example Config

config :app_name, GmailAdapterTestWeb.Mailer,
  adapter: Bamboo.GmailAdapter,
  sub: {:system, "SUB_ADDRESS"},
  sandbox: false

  # Google auth credentials must be provided to the `goth` app
  config :goth, json: {:system, "GCP_CREDENTIALS"}

Google Authorization/Authentication Help

The Google-related preconditions described above may be a little tricky. If you find yourself stuck, please refer to the wiki for help.

Documentation can be generated with ExDoc and published on HexDocs. Once published, the docs can be found at https://hexdocs.pm/bamboo_gmail.


Contribute

Contribution Guidelines can be found here. Please feel free to use, share, and extend this project. PR's welcome.