diff --git a/packages/component-invite/src/routes/postHandleInvitation.js b/packages/component-invite/src/routes/postHandleInvitation.js
index 85fd4151dcd1e929cc6f95b7cafd4435f958c482..893908b6642ff41fa55fbabd0f837d91535a62f8 100644
--- a/packages/component-invite/src/routes/postHandleInvitation.js
+++ b/packages/component-invite/src/routes/postHandleInvitation.js
@@ -1,6 +1,7 @@
 const logger = require('@pubsweet/logger')
 const helpers = require('../helpers/helpers')
 const teamHelper = require('../helpers/Team')
+const mailService = require('pubsweet-component-mail-service')
 
 module.exports = models => async (req, res) => {
   const { type, accept } = req.body
@@ -20,13 +21,13 @@ module.exports = models => async (req, res) => {
   const { collectionId } = req.params
 
   try {
-    await models.Collection.find(collectionId)
-    const filteredInvitations = user.invitations.filter(
+    const collection = await models.Collection.find(collectionId)
+    const matchingInvitation = user.invitations.find(
       invitation =>
         invitation.collectionId === collectionId && invitation.type === type,
     )
 
-    if (filteredInvitations.length === 0) {
+    if (matchingInvitation === undefined) {
       res.status(400).json({
         error: `Request data does not match any user invitation`,
       })
@@ -36,11 +37,25 @@ module.exports = models => async (req, res) => {
       return
     }
 
-    const matchingInvitation = filteredInvitations[0]
     matchingInvitation.hasAnswer = true
     if (accept === true) {
       matchingInvitation.isAccepted = true
       await user.save()
+      try {
+        const users = await models.User.all()
+
+        const eic = users.find(user => user.editorInChief === true)
+        await mailService.setupHandlingEditorAgreedEmail(
+          eic.email,
+          user,
+          'handling-editor-agreed',
+          `${req.protocol}://${req.get('host')}`,
+          collection.customId,
+        )
+      } catch (e) {
+        logger.error(e)
+        return res.status(500).json({ error: 'Mail could not be sent.' })
+      }
     } else {
       await teamHelper.removeTeamMember(
         matchingInvitation.teamId,
diff --git a/packages/component-invite/src/tests/helpers/Model.js b/packages/component-invite/src/tests/helpers/Model.js
index 7ff2e90b59f218c2e37967701d0ea8b70d78c73b..420cc704e1cfb10eaeb4e346648c192054f7b0dc 100644
--- a/packages/component-invite/src/tests/helpers/Model.js
+++ b/packages/component-invite/src/tests/helpers/Model.js
@@ -16,9 +16,8 @@ const build = () => {
     Team: {},
   }
   UserMock.find = jest.fn(id => findMock(id, 'users'))
-
   UserMock.findByEmail = jest.fn(email => findByEmailMock(email))
-
+  UserMock.all = jest.fn(() => Object.values(fixtures.users))
   TeamMock.find = jest.fn(id => findMock(id, 'teams'))
   TeamMock.updateProperties = jest.fn(team =>
     updatePropertiesMock(team, 'teams'),
diff --git a/packages/component-invite/src/tests/postHandleInvitation.test.js b/packages/component-invite/src/tests/postHandleInvitation.test.js
index ffa1215761d1b0a017f09a71f939dacb2d2a1c3c..e46e584d6980000aa96c3b145ce23d40d4ff130a 100644
--- a/packages/component-invite/src/tests/postHandleInvitation.test.js
+++ b/packages/component-invite/src/tests/postHandleInvitation.test.js
@@ -8,6 +8,7 @@ const Model = require('./helpers/Model')
 const models = Model.build()
 jest.mock('pubsweet-component-mail-service', () => ({
   setupAssignEmail: jest.fn(),
+  setupHandlingEditorAgreedEmail: jest.fn(),
 }))
 
 const notFoundError = new Error()
diff --git a/packages/component-mail-service/src/Mail.js b/packages/component-mail-service/src/Mail.js
index 11d1f29f20684c90abf2c8e8f0df3e2f3baeb2fc..f7f573102cce617530cb6732e5ae1c1b06aa6448 100644
--- a/packages/component-mail-service/src/Mail.js
+++ b/packages/component-mail-service/src/Mail.js
@@ -83,6 +83,27 @@ module.exports = {
     }
     return Email.send(mailData)
   },
+  setupHandlingEditorAgreedEmail: async (
+    toEmail,
+    user,
+    emailType,
+    url,
+    collectionId,
+  ) => {
+    const { htmlBody, textBody } = getEmailBody(emailType, {
+      url,
+      name: `${user.firstName} ${user.lastName}`,
+      collectionId,
+    })
+    const mailData = {
+      from: config.get('mailer.from'),
+      to: toEmail,
+      subject: 'Handling Editor Agreed',
+      text: textBody,
+      html: htmlBody,
+    }
+    return Email.send(mailData)
+  },
 }
 
 const getEmailBody = (emailType, replacements) => {
diff --git a/packages/component-mail-service/src/templates/handling-editor-agreed.html b/packages/component-mail-service/src/templates/handling-editor-agreed.html
new file mode 100644
index 0000000000000000000000000000000000000000..3f24b1f4216f3d8554def6a0bc63fc80fb4afa36
--- /dev/null
+++ b/packages/component-mail-service/src/templates/handling-editor-agreed.html
@@ -0,0 +1,232 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html data-editor-version="2" class="sg-campaigns" xmlns="http://www.w3.org/1999/xhtml">
+
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1" />
+  <!--[if !mso]><!-->
+  <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
+  <!--<![endif]-->
+  <!--[if (gte mso 9)|(IE)]>
+    <xml>
+    <o:OfficeDocumentSettings>
+    <o:AllowPNG/>
+    <o:PixelsPerInch>96</o:PixelsPerInch>
+    </o:OfficeDocumentSettings>
+    </xml>
+    <![endif]-->
+  <!--[if (gte mso 9)|(IE)]>
+    <style type="text/css">
+      body {width: 600px;margin: 0 auto;}
+      table {border-collapse: collapse;}
+      table, td {mso-table-lspace: 0pt;mso-table-rspace: 0pt;}
+      img {-ms-interpolation-mode: bicubic;}
+    </style>
+    <![endif]-->
+
+  <style type="text/css">
+    body,
+    p,
+    div {
+      font-family: helvetica, arial, sans-serif;
+      font-size: 14px;
+    }
+
+    body {
+      color: #626262;
+    }
+
+    body a {
+      color: #0D78F2;
+      text-decoration: none;
+    }
+
+    p {
+      margin: 0;
+      padding: 0;
+    }
+
+    table.wrapper {
+      width: 100% !important;
+      table-layout: fixed;
+      -webkit-font-smoothing: antialiased;
+      -webkit-text-size-adjust: 100%;
+      -moz-text-size-adjust: 100%;
+      -ms-text-size-adjust: 100%;
+    }
+
+    img.max-width {
+      max-width: 100% !important;
+    }
+
+    .column.of-2 {
+      width: 50%;
+    }
+
+    .column.of-3 {
+      width: 33.333%;
+    }
+
+    .column.of-4 {
+      width: 25%;
+    }
+
+    @media screen and (max-width:480px) {
+      .preheader .rightColumnContent,
+      .footer .rightColumnContent {
+        text-align: left !important;
+      }
+      .preheader .rightColumnContent div,
+      .preheader .rightColumnContent span,
+      .footer .rightColumnContent div,
+      .footer .rightColumnContent span {
+        text-align: left !important;
+      }
+      .preheader .rightColumnContent,
+      .preheader .leftColumnContent {
+        font-size: 80% !important;
+        padding: 5px 0;
+      }
+      table.wrapper-mobile {
+        width: 100% !important;
+        table-layout: fixed;
+      }
+      img.max-width {
+        height: auto !important;
+        max-width: 480px !important;
+      }
+      a.bulletproof-button {
+        display: block !important;
+        width: auto !important;
+        font-size: 80%;
+        padding-left: 0 !important;
+        padding-right: 0 !important;
+      }
+      .columns {
+        width: 100% !important;
+      }
+      .column {
+        display: block !important;
+        width: 100% !important;
+        padding-left: 0 !important;
+        padding-right: 0 !important;
+        margin-left: 0 !important;
+        margin-right: 0 !important;
+      }
+    }
+  </style>
+  <!--user entered Head Start-->
+
+  <!--End Head user entered-->
+</head>
+
+<body>
+  <center class="wrapper" data-link-color="#0D78F2" data-body-style="font-size: 14px; font-family: helvetica,arial,sans-serif; color: #626262; background-color: #F4F4F4;">
+    <div class="webkit">
+      <table cellpadding="0" cellspacing="0" border="0" width="100%" class="wrapper" bgcolor="#F4F4F4">
+        <tr>
+          <td valign="top" bgcolor="#F4F4F4" width="100%">
+            <table width="100%" role="content-container" class="outer" align="center" cellpadding="0" cellspacing="0" border="0">
+              <tr>
+                <td width="100%">
+                  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+                    <tr>
+                      <td>
+                        <!--[if mso]>
+                          <center>
+                          <table><tr><td width="600">
+                          <![endif]-->
+                        <table width="100%" cellpadding="0" cellspacing="0" border="0" style="width: 100%; max-width:600px;" align="center">
+                          <tr>
+                            <td role="modules-container" style="padding: 0px 0px 0px 0px; color: #626262; text-align: left;" bgcolor="#F4F4F4" width="100%"
+                              align="left">
+
+                              <table class="module preheader preheader-hide" role="module" data-type="preheader" border="0" cellpadding="0" cellspacing="0"
+                                width="100%" style="display: none !important; mso-hide: all; visibility: hidden; opacity: 0; color: transparent; height: 0; width: 0;">
+                                <tr>
+                                  <td role="module-content">
+                                    <p>handling editor agreed</p>
+                                  </td>
+                                </tr>
+                              </table>
+
+                              <table class="wrapper" role="module" data-type="image" border="0" cellpadding="0" cellspacing="0" width="100%" style="table-layout: fixed;">
+                                <tr>
+                                  <td style="font-size:6px;line-height:10px;padding:20px 0px 20px 0px;" valign="top" align="center">
+                                    <img class="max-width" border="0" style="display:block;color:#000000;text-decoration:none;font-family:Helvetica, arial, sans-serif;font-size:16px;max-width:10% !important;width:10%;height:auto !important;"
+                                      src="https://marketing-image-production.s3.amazonaws.com/uploads/bb39b20cf15e52c1c0933676e25f2b2402737c6560b8098c204ad6932b84eb2058804376dbc4db138c7a21dcaed9325bde36185648afac5bc97e3d73d4e12718.png"
+                                      alt="" width="60">
+                                  </td>
+                                </tr>
+                              </table>
+
+                              <table class="module" role="module" data-type="text" border="0" cellpadding="0" cellspacing="0" width="100%" style="table-layout: fixed;">
+                                <tr>
+                                  <td style="padding:30px 23px 0px 23px;background-color:#ffffff;" height="100%" valign="top" bgcolor="#ffffff">
+                                    <h1 style="text-align: center;">{{ name }} has agreed to be Handling Editor on manuscript {{ collectionId }}</h1>
+
+                                    <div style="text-align: center;">Please click on the link below to access your dashboard.</div>
+
+                                    <div style="text-align: center;">&nbsp;</div>
+
+                                    <div style="text-align: center;">&nbsp;</div>
+
+                                  </td>
+                                </tr>
+                              </table>
+                              <table border="0" cellPadding="0" cellSpacing="0" class="module" data-role="module-button" data-type="button" role="module"
+                                style="table-layout:fixed" width="100%">
+                                <tbody>
+                                  <tr>
+                                    <td align="center" bgcolor="#FFFFFF" class="outer-td" style="padding:0px 0px 30px 0px;background-color:#FFFFFF">
+                                      <table border="0" cellPadding="0" cellSpacing="0" class="button-css__deep-table___2OZyb wrapper-mobile"
+                                        style="text-align:center">
+                                        <tbody>
+                                          <tr>
+                                            <td align="center" bgcolor="#0d78f2" class="inner-td" style="border-radius:6px;font-size:16px;text-align:center;background-color:inherit">
+                                              <a href="{{ url }}" style="background-color:#0d78f2;border:1px solid #333333;border-color:#0d78f2;border-radius:0px;border-width:1px;color:#ffffff;display:inline-block;font-family:arial,helvetica,sans-serif;font-size:16px;font-weight:normal;letter-spacing:0px;line-height:16px;padding:12px 18px 12px 18px;text-align:center;text-decoration:none"
+                                                target="_blank">VIEW DASHBOARD</a>
+                                            </td>
+                                          </tr>
+                                        </tbody>
+                                      </table>
+                                    </td>
+                                  </tr>
+                                </tbody>
+                              </table>
+                              <div data-role="module-unsubscribe" class="module unsubscribe-css__unsubscribe___2CDlR" role="module"
+                                data-type="unsubscribe" style="color:#444444;font-size:12px;line-height:20px;padding:16px 16px 16px 16px;text-align:center">
+                                <div class="Unsubscribe--addressLine">
+                                  <p class="Unsubscribe--senderName" style="font-family:Arial, Helvetica, sans-serif;font-size:12px;line-height:20px">Hindawi Publishing Corporation</p>
+                                  <p style="font-family:Arial, Helvetica, sans-serif;font-size:12px;line-height:20px">
+                                    <span class="Unsubscribe--senderAddress">315 Madison Ave, Third Floor, Suite 3070</span>,
+                                    <span class="Unsubscribe--senderCity">NEW YORK</span>,
+                                    <span class="Unsubscribe--senderState">NY</span>
+                                    <span class="Unsubscribe--senderZip">10017</span>
+                                  </p>
+                                </div>
+                                <p style="font-family:Arial, Helvetica, sans-serif;font-size:12px;line-height:20px">
+                                  <a class="Unsubscribe--unsubscribeLink" href="[Unsubscribe]">Unsubscribe</a>
+                                </p>
+                              </div>
+                            </td>
+                          </tr>
+                        </table>
+                        <!--[if mso]>
+                          </td></tr></table>
+                          </center>
+                          <![endif]-->
+                      </td>
+                    </tr>
+                  </table>
+                </td>
+              </tr>
+            </table>
+          </td>
+        </tr>
+      </table>
+    </div>
+  </center>
+</body>
+
+</html>
\ No newline at end of file
diff --git a/packages/component-mail-service/src/templates/handling-editor-agreed.txt b/packages/component-mail-service/src/templates/handling-editor-agreed.txt
new file mode 100644
index 0000000000000000000000000000000000000000..550581b4489de9dca0da675eb4c3da2db498d815
--- /dev/null
+++ b/packages/component-mail-service/src/templates/handling-editor-agreed.txt
@@ -0,0 +1,6 @@
+{{ name }} has agreed to be Handling Editor on manuscript {{ collectionId }}
+Please click on the link below to access your dashboard
+{{ url }} VIEW DASHBOARD
+Hindawi Publishing Corporation
+315 Madison Ave, Third Floor, Suite 307
+New York, NY 10017
\ No newline at end of file