@bg-dev/strapi-provider-email-gmail
Version:
A Strapi plugin for sending email from Gmail
46 lines (40 loc) • 1.18 kB
JavaScript
const nodemailer = require("nodemailer");
const { OAuth2Client } = require("google-auth-library");
module.exports = {
init: ({ clientId, clientSecret, refreshToken, userEmail }) => {
var transport = null;
const oAuth2Client = new OAuth2Client(
clientId,
clientSecret,
"https://developers.google.com/oauthplayground"
);
oAuth2Client.setCredentials({ refresh_token: refreshToken });
oAuth2Client.getAccessToken().then((accessToken) => {
transport = nodemailer.createTransport({
service: "gmail",
auth: {
type: "OAuth2",
user: userEmail,
clientId: clientId,
clientSecret: clientSecret,
refreshToken: refreshToken,
accessToken: accessToken,
},
});
});
return {
send: (options) => {
return new Promise((resolve, reject) => {
if (transport === null) {
reject("Gmail provider not initialized");
} else {
transport
.sendMail(options)
.then(() => resolve())
.catch((error) => reject(error));
}
});
},
};
},
};