Email Templating
About
The email-templating
component contains an EmailTemplate
class with one main instance method sendEmail
for sending the email using the send-email
component from PubSweet.
-
sendEmail()
:- uses the
send-email
component from PubSweet to actually send the email based on the Email properties passed in the constructor
- uses the
The Email
class also provides a constructor
whose properties will be used when sending the email:
-
type
: a String that can be eitheruser
orsystem
which can be used in the unsubscribe process -
fromEmail
: a String indicating the from name and from email address:Coko <team@coko.foundation>
-
toUser
: an Object with two properties:email
andname
. Thename
property will be used when addressing the recipient in the email content - for example: "Dear Dr. Rachel Smith". -
cc
: can be either astring
containing an email address, or anarray
ofstring
with email addresses -
bcc
: can be either astring
containing an email address, or anarray
ofstring
with email addresses -
content
: an Object which contains properties about the email:subject
-
paragraph
: the main text part of the email body which informs the recipient -
signatureName
- the name which will appear in the signature -
ctaLink
- the URL which will be placed in the button -
ctaText
- the text which appears on the button unsubscribeLink
-
signatureJournal
- the journal or company name which will appear in the signature
-
bodyProps
:-
hasLink
: a boolean which indicates if the email body contains a CTA (big button) or not -
hasIntro
: a boolean which indicates if the email body contains the "Dear Dr. John" introduction or not. -
hasSignature
: a boolean which indicates if the email body contains a typical "Kind regards," signature or not
-
Usage
-
Config
In order to use this component, you need the to add the following data in your main config file:
journal: { name: 'Coko Foundation', staffEmail: 'Coko <team@coko.foundation>', logo: 'https://coko.foundation/wp-content/uploads/2017/11/logo-coko.png', ctaColor: '#EE2B77', // the color of the email button logoLink: 'https://coko.foundation/', publisher: 'Coko Foundation', // this will appear in the email footer privacy: '', // a text containing information about the privacy policy that will appear in the email footer address: '2973 16th St., Suite 300, San Francisco, CA 94103', // the address in the footer footerText: 'You have received this email in regards to the account creation, submission, or peer review process of a paper submitted to a journal published by Coko Foundation.' },
-
Dependencies
-
Notifications
These are the most basic emails, which contain at least a piece of text, called a paragraph, and may or may not contain an intro, an action button and a signature.
const EmailTemplate = require('@pubsweet/component-email-template') const config = require('config') const { name: journalName, fromEmail: staffEmail } = config.get('journal') const paragraph = `We are please to inform you that the manuscript has passed the technical check process and is now submitted. Please click the link below to access the manuscript.` const sendNotifications = ({ user, editor, collection, fragment }) => { const email = new EmailTemplate({ type: 'user', fromEmail, toUser: { email: user.email, name: `${user.lastName}`, }, content: { ctaText: 'MANUSCRIPT DETAILS', signatureJournal: journalName, signatureName: `${editor.name}`, subject: `${collection.customId}: Manuscript Update`, paragraph, unsubscribeLink: `http://localhost:3000/unsubscribe/${user.id}`, ctaLink: `http://localhost:3000/projects/${collection.id}/versions/${fragment.id}/details`, }, bodyProps: { hasLink: true, hasIntro: true, hasSignature: true, }, }) return email.sendEmail() }
-
Reviewer Invitation This email template is specific to Hindawi and it requires some data that might not be available in other PubSweet apps.