Skip to content

MattieBelt/strapi-provider-email-gmail-2lo

 
 

Repository files navigation

strapi-provider-email-gmail-2lo

This package is an email provider for the headless CMS Strapi. You can use this provider to send mail programmatically with strapi-plugin-email.

This provider enables you to send email with the Gmail API using a 2-legged OAuth configuration, when using G Workspace.

Supported versions:

  • v3.5.x (recommended)
  • v3.x

Not having Google Workspace (previously G suite) will not work with this provider.

Installation

# using yarn
yarn add strapi-provider-email-gmail-2lo

# using npm
npm install strapi-provider-email-gmail-2lo --save

Setup

  1. Enable the Gmail API
  2. Configure the OAuth consent screen
  3. Create a service account
  4. Create a new Private key for your service account
  5. Configure the provider in config/plugins
Variable Type Description Required Default
provider string The name of the provider you use yes
providerOptions object Provider options yes
providerOptions.username string An existing email address within your domain/project yes
providerOptions.clientId number Service account API Client id yes
providerOptions.privateKey string Service account private key yes
settings object Settings no {}
settings.defaultFrom string Default sender mail address, exist in domain no undefined
settings.defaultReplyTo string | array Default address or addresses the receiver is asked to reply to no undefined

Enable the scope in G Workspace (required)

The following steps will authorize the right scope, to allow sending email with G Workspace:

  1. Go to G Workspace admin dashboard > Security > API controls > Manage domain-wide delegation
  2. Add an authorized client
  1. Authorize

Example

Path - config/plugins.js

module.exports = ({ env }) => ({
  // ...
  email: {
    provider: 'gmail-2lo',
    providerOptions: {
      username: '[email protected]',
      clientId: env('EMAIL_CLIENT_ID'),
      privateKey: env('EMAIL_PRIVATE_KEY').replace(/\\n/g, '\n'),
    },
    settings: {
      defaultFrom: '[email protected]',
      defaultReplyTo: '[email protected]',
    },
  },
  // ...
});

TIP: When using environment variables for your privateKey, as in the example above, include all the \n in you .env file, like so:

EMAIL_PRIVATE_KEY="-----BEGIN PRIVATE KEY-----\nAbC...xYz\n-----END PRIVATE KEY-----\n"

Resources

Links

About

Nodemailer provider for strapi

Resources

License

Stars

Watchers

Forks

Languages

  • JavaScript 100.0%