@pubsweet/component-email-templating
v0.3.18
Published
Send journal emails using templates from xPub/PubSweet
Downloads
60
Keywords
Readme
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 processfromEmail
: a String indicating the from name and from email address:Coko <[email protected]>
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 addressesbcc
: can be either astring
containing an email address, or anarray
ofstring
with email addressescontent
: an Object which contains properties about the email:subject
paragraph
: the main text part of the email body which informs the recipientsignatureName
- the name which will appear in the signaturectaLink
- the URL which will be placed in the buttonctaText
- the text which appears on the buttonunsubscribeLink
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 nothasIntro
: 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 <[email protected]>', 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.