Skip to content

Instantly share code, notes, and snippets.

@ruslandoga
Last active May 28, 2024 10:17
Show Gist options
  • Save ruslandoga/c94ce526231fb77930132aaeda3fc3c9 to your computer and use it in GitHub Desktop.
Save ruslandoga/c94ce526231fb77930132aaeda3fc3c9 to your computer and use it in GitHub Desktop.

This short guides shows how to setup Plausible CE v2.1.0-rc.1 (or later) email delivery using your Gmail account.

Create App password

Go to your Google security settings and create an app password to be used in Plausible CE

Screenshot 2024-05-08 at 12 46 56 Screenshot 2024-05-08 at 12 24 08 Screenshot 2024-05-08 at 12 24 39 Screenshot 2024-05-08 at 12 24 46

Update configuration

Update your configuration to use the Bamboo.Mua mailer adapter. Your current SMTP_* settings will still work.

plausible-conf.env

  BASE_URL=https://plausible.example.com
  SECRET_KEY_BASE=PkVcxRgQDfQyhPETlog3vvCrj5LdYFSv4ejPEJHJO+i/37w6RZfRjeVCpJayjUjJMfXsNurcv5upPhTRoD3KgQ==
  TOTP_VAULT_KEY=aihU7k+GSBKbcVFuX9VEPyUhuwlKEomqA94/SQQ0NR4=
+ MAILER_ADAPTER=Bamboo.Mua
+ MAILER_EMAIL=your-username-here@gmail.com
+ SMTP_HOST_ADDR=smtp.gmail.com
+ SMTP_HOST_PORT=587
+ SMTP_USER_NAME=your-username-here@gmail.com
+ SMTP_USER_PWD="wnqj fkbn jcwc byxk"

Recreate container

Due to the immutable nature of containers, you need to recreate plausible to apply the new environment variables.

console

$ docker compose stop plausible
$ docker compose rm plausible
$ docker compose up -d

Verify

Now verify the updated configuration and try sending a test email.

console

$ docker compose exec plausible bin/plausible remote
iex> Application.get_env :plausible, Plausible.Mailer
#==> [
#==>   adapter: Bamboo.Mua,
#==>   auth: [username: "your-username-here@gmail.com", password: "wnqj fkbn jcwc byxk"],
#==>   relay: "smtp.gmail.com",
#==>   port: 587
#==> ]
iex> {:ok, _delivered_email} =
  Plausible.Mailer.deliver_now(
    Bamboo.Email.new_email(
      # pick one of your own mailboxes
      to: "your-username-here@gmail.com",
      from: PlausibleWeb.Email.mailer_email_from(),
      text_body: "test"
    )
  )

If it's delivered, you are all set! If not, leave the comment below and we'll try to help :)

@raabmar
Copy link

raabmar commented May 13, 2024

I confirm, I just tested it with Purelymail - a simple SMTP mailbox for an affordable price and it works, so I can send the emails from e.g. analytics@mydomain.com

(my main domain is mydomain.at but this one is already setup for Google Workspace, so I have another domain (.com) for some other use cases like this one)

@raabmar
Copy link

raabmar commented May 13, 2024

Note: I just tested by inviting myself with some private address as a member to a site. Seems to be an easy way to test email.

@Striffly
Copy link

Hi

I can't get this new mail client to work: no email is sent when using invitation or password reset.

This is my configuration :

MAILER_ADAPTER=Bamboo.Mua
MAILER_EMAIL=noreply@xxxx.fr
SMTP_HOST_ADDR=ssl0.ovh.net
SMTP_HOST_PORT=587
SMTP_USER_NAME=noreply@xxxx.fr
SMTP_USER_PWD=xxxxxxxxx

However, I receive emails with this command :

{:ok, _delivered_email} =
  Plausible.Mailer.deliver_now(
    Bamboo.Email.new_email(
      # pick one of your own mailboxes
      to: "xxxx@hotmail.fr",
      from: PlausibleWeb.Email.mailer_email_from(),
      subject: "how are you?",
      text_body: "I'm fine",
      html_body: "I'm <i>fine</i>"
    )
  )

@ruslandoga
Copy link
Author

ruslandoga commented May 28, 2024

Replied in plausible/analytics#4125 (reply in thread) (since it's not exactly related to Mua+GMail setup)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment