Skip to content

Instantly share code, notes, and snippets.

@ruslandoga
Last active May 13, 2024 22:06
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 :)

@ruslandoga
Copy link
Author

ruslandoga commented May 8, 2024

Since this is a new SMTP client, all feedback is helpful! If it works well, please leave a thumbs up.

@raabmar
Copy link

raabmar commented May 13, 2024

@ruslandoga
I want to report back, that I just received the weekly emails sent by v2.1.0-rc.1 and this method/setup as described in this guide. The screenshot in the guide was not accurate, I didn't see the section for "App Passwords" (second screenshot) but I made it work by searching for it.

However, App Passwords is something that does not exist in Google Workspace. I think this is a kind of an outdated approach, not recommended anymore by Google and only available to personal Google accounts. Therefore the emails are sent now from my personal email and not my business Google Workspace mailbox, which I would like to change

I can also set up another SMTP mailbox like stats@mydomain.com and send from this one instead of Gmail. However, as this is all a bit above my understanding, I just followed the step by step guide successfully for the personal Google mailbox

I have a cheap Purelymail account for such things that won't cost me extra. Can I just use the data from Purelymail and send from it instead of Gmail. There I don't have to mess around with App Passwords, and I could still send from my own domain instead of a personal gmail mailbox

+ MAILER_ADAPTER=Bamboo.Mua
+ MAILER_EMAIL=stats@mydomain.com
+ SMTP_HOST_ADDR=smtp.purelymail.com
+ SMTP_HOST_PORT=587
+ SMTP_USER_NAME=stats@mydomain.com
+ SMTP_USER_PWD="mysmtppassword"

@ruslandoga
Copy link
Author

@raabmar 👋

Thank you for trying it out!

The screenshot in the guide was not accurate, I didn't see the section for "App Passwords" (second screenshot) but I made it work by searching for it.

Do you remember where it was located for you? I can update the guide with a note that it can be someplace else.

However, App Passwords is something that does not exist in Google Workspace.

This guide's goal is to provide the easiest setup for self-hosters using their personal accounts so supporting Google Workspaces or other professional Google products is outside of its scope.

Can I just use the data from Purelymail and send from it instead of Gmail.

It should work.

@raabmar
Copy link

raabmar commented May 13, 2024

@ruslandoga Now I can also see the section for "App Passwords" under Security → 2-Step Verification. I think it only shows up there, once you set an app password. But you can't actually add a new app password in here.

I only found it myself by using the search bar

image

After I added an App Password in there, then it also showed up here
image

OK, I'll see later if I can use the ordinary simple SMPT mailbox with my domain instead of Google Workspace.

@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.

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