diff --git a/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/notify/AbstractAtsNotificationService.java b/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/notify/AbstractAtsNotificationService.java
index 0a1c430..c178dfe 100644
--- a/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/notify/AbstractAtsNotificationService.java
+++ b/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/notify/AbstractAtsNotificationService.java
@@ -36,7 +36,7 @@
 /**
  * @author Donald G. Dunne
  */
-public abstract class AbstractAtsNotificationService implements IAtsNotificationService {
+public abstract class AbstractAtsNotificationService implements IAtsNotificationService, OseeEmailCreator {
 
    private volatile boolean emailEnabled = true;
    protected AtsApi atsApi;
@@ -134,8 +134,8 @@
 
    @Override
    public void sendNotifications(String fromUserEmail, String testingUserEmail, String subject, String body, Collection<? extends AtsNotificationEvent> notificationEvents) {
-      SendNotificationEvents job = new SendNotificationEvents(createOseeEmail(), atsApi, fromUserEmail,
-         testingUserEmail, subject, body, notificationEvents, atsApi.getUserService());
+      SendNotificationEvents job = new SendNotificationEvents(this, atsApi, fromUserEmail, testingUserEmail, subject,
+         body, notificationEvents, atsApi.getUserService());
       job.run();
    }
 
@@ -163,7 +163,8 @@
       }
    }
 
-   protected abstract OseeEmail createOseeEmail();
+   @Override
+   public abstract OseeEmail createOseeEmail();
 
    private String getFromUserEmail(AtsNotificationCollector notifications) {
       String email = atsApi.getConfigValue("NoReplyEmail");
diff --git a/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/notify/OseeEmailCreator.java b/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/notify/OseeEmailCreator.java
new file mode 100644
index 0000000..3911d27
--- /dev/null
+++ b/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/notify/OseeEmailCreator.java
@@ -0,0 +1,24 @@
+/*******************************************************************************
+ * Copyright (c) 2022 Boeing.
+ *
+ * This program and the accompanying materials are made
+ * available under the terms of the Eclipse Public License 2.0
+ * which is available at https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Boeing - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.osee.ats.core.notify;
+
+import org.eclipse.osee.framework.core.util.OseeEmail;
+
+/**
+ * @author Donald G. Dunne
+ */
+public interface OseeEmailCreator {
+
+   public OseeEmail createOseeEmail();
+
+}
diff --git a/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/notify/SendNotificationEvents.java b/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/notify/SendNotificationEvents.java
index 2b25d93..1a54024 100644
--- a/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/notify/SendNotificationEvents.java
+++ b/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/notify/SendNotificationEvents.java
@@ -40,12 +40,12 @@
    private final String body;
    private final String fromUserEmail;
    private final String testingUserEmail;
-   private final OseeEmail oseeEmail;
+   private final OseeEmailCreator oseeEmailCreator;
    private final AtsApi atsApi;
    private final IAtsUserService userService;
 
-   public SendNotificationEvents(OseeEmail oseeEmail, AtsApi atsApi, String fromUserEmail, String testingUserEmail, String subject, String body, Collection<? extends AtsNotificationEvent> notificationEvents, IAtsUserService userService) {
-      this.oseeEmail = oseeEmail;
+   public SendNotificationEvents(OseeEmailCreator oseeEmailCreator, AtsApi atsApi, String fromUserEmail, String testingUserEmail, String subject, String body, Collection<? extends AtsNotificationEvent> notificationEvents, IAtsUserService userService) {
+      this.oseeEmailCreator = oseeEmailCreator;
       this.atsApi = atsApi;
       this.userService = atsApi.getUserService();
       this.fromUserEmail = fromUserEmail;
@@ -187,6 +187,7 @@
          System.out.println(String.format("useFromEmail [%s]", useFromEmail));
 
          try {
+            OseeEmail oseeEmail = oseeEmailCreator.createOseeEmail();
             oseeEmail.setFrom(useFromEmail);
             oseeEmail.setSubject(getNotificationEmailSubject(notificationEvents));
             oseeEmail.setHTMLBody(html);
diff --git a/plugins/org.eclipse.osee.ats.ide/src/org/eclipse/osee/ats/ide/notify/AtsNotificationServiceImpl.java b/plugins/org.eclipse.osee.ats.ide/src/org/eclipse/osee/ats/ide/notify/AtsNotificationServiceImpl.java
index 68224c3..5d1b9cd 100644
--- a/plugins/org.eclipse.osee.ats.ide/src/org/eclipse/osee/ats/ide/notify/AtsNotificationServiceImpl.java
+++ b/plugins/org.eclipse.osee.ats.ide/src/org/eclipse/osee/ats/ide/notify/AtsNotificationServiceImpl.java
@@ -27,7 +27,7 @@
    }
 
    @Override
-   protected OseeEmail createOseeEmail() {
+   public OseeEmail createOseeEmail() {
       return OseeEmailIde.create();
    }
 
diff --git a/plugins/org.eclipse.osee.ats.rest/src/org/eclipse/osee/ats/rest/internal/notify/AtsNotificationServiceImpl.java b/plugins/org.eclipse.osee.ats.rest/src/org/eclipse/osee/ats/rest/internal/notify/AtsNotificationServiceImpl.java
index 3c14d3a..8dfda5a 100644
--- a/plugins/org.eclipse.osee.ats.rest/src/org/eclipse/osee/ats/rest/internal/notify/AtsNotificationServiceImpl.java
+++ b/plugins/org.eclipse.osee.ats.rest/src/org/eclipse/osee/ats/rest/internal/notify/AtsNotificationServiceImpl.java
@@ -27,7 +27,7 @@
    }
 
    @Override
-   protected OseeEmail createOseeEmail() {
+   public OseeEmail createOseeEmail() {
       return OseeEmailServer.create();
    }
 
