0.1.1 • Published 3 years ago

strapi-provider-email-gmail-oauth2-image-base64 v0.1.1

Weekly downloads
6
License
MIT
Repository
github
Last release
3 years ago

strapi-provider-email-gmail-oauth2-image-base64

Demo

Demo result/

Note

This package is a fork of the strapi-provider-email-nodemailer-gmail-oauth2. This is to meet the new required name for Strapi Beta (Also changed the OAuth from 2LO Service to 3LO client) and add feature to support insert base64 image in html content of email.

Usage

1) Enable Gmail API 2) Create OAuth Credential 3) Set the Authorized Redirect to https://developers.google.com/oauthplayground 4) Take note of your Client ID and Client Secret. 5) Navigate to https://developers.google.com/oauthplayground. 6) In settings, activate "Use your own OAuth credentials". Copy your Client ID and Client Secret. 7) Set scopes to https://mail.google.com. 8) Exchange Authorization Code. 9) Take note of Refresh and Access Token. 10) Configure the provider in [strapi-dir]/config/plugins.

VariableTypeDescriptionRequiredDefault
providerstringThe name of the provider you use (in this case is gmail-oauth2-image-base64)yes
providerOptionsobjectProvider optionsyes
providerOptions.usernamestringAn email that you want to use to send email with the provider (this email is configured at above step)yesproviderOptions.clientIdnumberOAuth2 account API Client id (step 4)yes
providerOptions.clientSecretstringOAuth2 account API Client Secret (step 4)yes
providerOptions.refreshTokenstringOAuth2 account API Refresh Token (step 9)yes
providerOptions.accessTokenstringOAuth2 account API Access Token (step 9)yes
settingsobjectSettingsno{}
settings.defaultFromstringDefault sender mail addressnoundefined
settings.defaultReplyTostring | arrayDefault address or addresses the receiver is asked to reply tonoundefined

Example

Path - config/plugins.js

module.exports = ({ env }) => ({
  // ...
  email: {
    provider: "gmail-oauth2-image-base64",
    providerOptions: {
      username: env("EMAIL_USERNAME"),
      clientId: env("EMAIL_CLIENT_ID"),
      clientSecret: env("EMAIL_CLIENT_SECRET"),
      refreshToken: env("EMAIL_CLIENT_REFRESH_TOKEN"),
      accessToken: env("EMAIL_CLIENT_ACCESS_TOKEN"),
    },
    settings: {
      defaultFrom: env("EMAIL_USERNAME"),
      defaultReplyTo: env("EMAIL_USERNAME"),
    },
  },
  // ...
});

TIP: You can using environment file (.env) in the root of project for store variable.

Enable/Disable base64 image in html email content

If you email don't have base64 image, you can disable this feature by adding a key in options email like this:

await strapi.plugins.email.services.email.sendTemplatedEmail(
      {
        to: data?.email,
        hasBase64Image: false,
      },
      emailTemplate,
      {
        data,
      }
    );

Resources

Links

Installation

npm i -s strapi-provider-email-gmail-oauth2-image-base64