strapi-plugin-mailjet
v0.0.2
Published
Mailjet strapi plugin to connect to Mailjet api. Offers subscribe and unsubscribe feature contact from contact list.
Readme
Strapi plugin mailjet
Mailjet strapi plugin offres Mailjet connection api with parameters from strapi admin and features like subcribe, unsubscribe or remove a contact from a contact list.
How to use it ?
Easy !
Add it in your package.json dependencies of your project.
From npm :
npm install -s @symbol-it/strapi-plugin-mailjetFrom github :
"dependencies": {
...
"strapi-plugin-mailjet": "Symbol-it/strapi-mailjet#master
...
}If you want to start your project with your mailjet configuration before the application starts, use bootstrap function #doc. You can use configuration service with update method to do it.
You can also configure mailjet from strapi admin. ;)
The first block is made to configure your mailjet api.

The second to choose your newsletter's list.

Example of use
I want to add or remove a contact from my newsletter list when my user wants to subscribe or unsubscribe.
To do it, i add a User.js in extensions/users-permissions/models/ and i create 2 lifecycles : afterCreate and afterUpdate.
module.exports = {
lifecycles: {
async afterCreate(result, params, data) {
...
},
async afterUpdate(result, params, data) {
...
},
}
};For the first one, i want to add my contact if my mailjet plugin is enabled and if my user wants to subscribe :
async afterCreate(result, params, data) {
const {isSubscriber, email, lastname, firstname} = result;
const config = await strapi.plugins.mailjet.services.config.get();
if (config.enabled && isSubscriber === true) {
const username = lastname + ' ' + firstname;
await strapi.plugins.mailjet.services.contact.subscribe(email, username, config.newsletterList);
}
},For the last one, i want to add or remove my contact if mailjet plugin is enabled and if my user subscribe or unsubscribe to the newsletter :
async afterUpdate(result, params, data) {
const {isSubscriber, email, lastname, firstname} = result;
const config = await strapi.plugins.mailjet.services.config.get();
if (config.enabled) {
if (isSubscriber === true) {
const username = lastname + ' ' + firstname;
await strapi.plugins.mailjet.services.contact.subscribe(email, username, config.newsletterList);
} else {
await strapi.plugins.mailjet.services.contact.remove(email, config.newsletterList);
}
}
},