The `email-template` component contains an `Email` class with two instance methods: `getBody` for retrieving the email body (html and text) and `sendEmail` for sending the email using the `send-email` component from PubSweet.
The `email-templating` component contains an `Email` class with two main instance methods: `getNotificationBody` for retrieving the email body (html and text) and `sendEmail` for sending the email using the `send-email` component from PubSweet.
1.`getBody({ body = {}, isReviewerInvitation = false })`:
1.`getNotificationBody({ emailBodyProps = {} )` accepts one parameter object with should contain the following properties:
* accepts two parameters:
*`paragraph`: the main text part of the email body which informs the recipient
* the `body` object, which for simple notifications should have only two properties: `paragraph` and `hasLink`
*`hasLink`: a boolean which indicates if the email body contains a CTA (big button) or not
* the `isReviewerInvitation` boolean to indicate wether or not you need to send a Reviewer Invitation, which uses a more complex template
*`hasIntro`: a boolean which indicates if the email body contains the "Dear Dr. John" introduction or not.
* returns the HTML and text parts of the email which can then be used to send it
*`hasSignature`: a boolean which indicates if the email body contains a typical "Kind regards," signature or not
This function returns the HTML and text parts of the email which can then be used to send it.
1.`sendEmail({ text, html })`:
1.`sendEmail({ text, html })`:
* accepts the text and HTML parts of an email and then uses the `send-email` component from PubSweet to actually send the email.
* accepts the text and HTML parts of an email and then uses the `send-email` component from PubSweet to actually send the email.
The `Email` class also provides a `constructor` whose properties will be used when sending the email:
The `Email` class also provides a `constructor` whose properties will be used when sending the email:
1.`type`: a String that can be either `user` or `system` which can be used in the unsubscribe process
1.`type`: a String that can be either `user` or `system` which can be used in the unsubscribe process
2.`fromEmail`: a String indicating the from name and from email address: `Coko <team@coko.foundation>`
1.`toUser`: an Object with two properties: `email` and `name`. The `name` property will be used when addressing the recipient in the email content - for example: "Dear Dr. Rachel Smith".
1.`toUser`: an Object with two properties: `email` and `name`. The `name` property will be used when addressing the recipient in the email content - for example: "Dear Dr. Rachel Smith".
1.`content`: an Object which contains data about the email:
1.`content`: an Object which contains properties about the email:
1.`subject`
1.`subject`
1.`signatureName`
1.`signatureName` - the name which will appear in the signature
1.`ctaLink` - the URL which will be placed in the button
1.`ctaLink` - the URL which will be placed in the button
1.`ctaText` - the text which appears on the button
1.`ctaText` - the text which appears on the button
1.`unsubscribeLink`
1.`unsubscribeLink`
2.`signatureJournal` - the journal or company name which will appear in the signature
## Usage
## Usage
1.**Notifications**
1.**Config**
These are the most basic emails, which contain at least a piece of text, called a `Paragraph` and may or may not contain an `Action Button`. The `paragraph` and `hasLink` are passed to the `getBody()` function as properties of the `body` parameter.
In order to use this component, you need the to add the following data in your main config file:
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 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 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.`