# parse-server-mandrill-adapter
Used to send Parse Server password reset and email verification emails through Mandrill, supporting templates.

How to install:
```
$ npm install parse-server-mandrill-adapter --save
```

How to use:
```
var server = ParseServer({
  ...
  // App Name
  appName: 'YourAppName',
  // Environment where the user can confirm his e-mail address or reset his password (most likely the same as your 'serverURL')
  publicServerURL: 'YourPublicServerURL',
  emailAdapter: {
    module: 'parse-server-mandrill-adapter',
    options: {
      // API key from Mandrill account
      apiKey: 'API-KEY',
      // From email address
      fromEmail: 'no-reply@yourdomain.com',
      // Display name
      displayName: 'no-reply@yourdomain.com',
      // Reply-to email address
      replyTo: 'no-reply@yourdomain.com',
      // Verification email subject
      verificationSubject: 'Please verify your e-mail for *|appname|*',
      // Verification email body. This will be ignored when verificationTemplateName is used.
      verificationBody: 'Hi *|username|*,\n\nYou are being asked to confirm the e-mail address *|email|* with *|appname|*\n\nClick here to confirm it:\n*|link|*',
      // Password reset email subject
      passwordResetSubject: 'Password Reset Request for *|appname|*',
      // Password reset email body. This will be ignored when passwordResetTemplateName is used.
      passwordResetBody: 'Hi *|username|*,\n\nYou requested a password reset for *|appname|*.\n\nClick here to reset it:\n*|link|*',

      /****************************************
       * If you are using Mandrill templates: *
       ****************************************/

      //
      // If you want to use other custom User attributes in the emails
      // (for example: firstName, lastName), add them to the list (username and email 
      // are pre-loaded).
      // The merge tag in the template must be equal to the attribute's name.
      customUserAttributesMergeTags: ['firstname', 'lastname'],

      //
      // The name of your Mandrill template for the password reset email:
      // If you add this attribute, then passwordResetBody will be ignored.
      // IMPORTANT: Make sure the email has the *|link|* merge tag,
      //            it will render the url to reset the password.
      passwordResetTemplateName: 'password-reset-template-name',

      //
      // The name of your Mandrill template for the verification email:
      // If you add this attribute, then verificationBody will be ignored.
      // IMPORTANT: Make sure the email has the *|link|* merge tag,
      //            it will render the url to verify the user.
      verificationTemplateName: 'email-verification-template-name',

    }
  }
  ...
});
```

You can use the following variables in the subjects and bodies and they will be replaced with their appropriate values:

`*|appname|*` - your application's display name

`*|username|*` - the user's display name

`*|email|*` - the user's email address

`*|link|*` - the link the user must click to perform the requested action

Note that these variable tokens are formatted using the `MailChimp` merge language. If your Mandrill account is using the `Handlebars` merge language, you should use the alternative format, e.g. `{{appname}}`, `{{username}}`, etc. The Mandrill merge language style can be configured in your Mandrill settings under 'Sending Defaults'.

Developers groups:
https://groups.google.com/forum/#!forum/back4app

Parse hosting:
https://www.back4app.com
