0.3.18 • Published 3 years ago

@pubsweet/component-email-templating v0.3.18

Weekly downloads
437
License
MIT
Repository
gitlab
Last release
3 years ago

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.

  1. sendEmail():
    • uses the send-email component from PubSweet to actually send the email based on the Email properties passed in the constructor

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
  2. fromEmail: a String indicating the from name and from email address: Coko <team@coko.foundation>
  3. 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".
  4. cc: can be either a string containing an email address, or an array of string with email addresses
  5. bcc: can be either a string containing an email address, or an array of string with email addresses
  6. 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
  7. 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

  1. 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.'
      },
  2. Dependencies

  3. 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.

    notification

    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()
    }
  4. Reviewer Invitation This email template is specific to Hindawi and it requires some data that might not be available in other PubSweet apps.

    invitation

0.3.18

3 years ago

0.3.17

3 years ago

0.3.16

3 years ago

0.3.15

3 years ago

0.3.14

3 years ago

0.3.13

3 years ago

0.3.12

3 years ago

0.3.11

3 years ago

0.3.10

3 years ago

0.3.9

3 years ago

0.3.8

3 years ago

0.3.7

3 years ago

0.3.6

4 years ago

0.3.5

4 years ago

0.3.4

4 years ago

0.3.3

4 years ago

0.3.2

4 years ago

0.3.1

4 years ago

0.3.0

4 years ago

0.2.14

4 years ago

0.2.13

4 years ago

0.2.12

4 years ago

0.2.11

4 years ago

0.2.10

4 years ago

0.2.9

4 years ago

0.2.8

4 years ago

0.2.7

5 years ago

0.2.6

5 years ago

0.2.5

5 years ago

0.2.4

5 years ago

0.2.3

5 years ago

0.2.2

5 years ago

0.2.1

5 years ago

0.2.0

5 years ago

0.1.19

5 years ago

0.1.18

5 years ago

0.1.17

5 years ago

0.1.16

5 years ago

0.1.15

5 years ago

0.1.14

5 years ago

0.1.13

5 years ago

0.1.12

5 years ago

0.1.11

5 years ago

0.1.10

5 years ago

0.1.9

5 years ago

0.1.8

5 years ago

0.1.7

5 years ago

0.1.6

5 years ago

0.1.5

5 years ago

0.1.4

5 years ago

0.1.3

5 years ago

0.1.2

5 years ago

0.1.1

5 years ago

0.1.0

5 years ago