diff --git a/process/Bulkmail_lib/process.js b/process/Bulkmail_lib/process.js
index 52221761690132a78edebe892f1722a25c52fc34..2b2ccd267253a68b450b2326d25972f8738b8117 100644
--- a/process/Bulkmail_lib/process.js
+++ b/process/Bulkmail_lib/process.js
@@ -192,6 +192,7 @@ BulkMailUtils.sendBulkMail = function (pBulkMailId, pIsTestRun, pUser)
         {
             let isSuccess = false;
             let bouncedStatus = null;
+            var errorMessage = "";
             let recipientId = recipient["BULKMAILRECIPIENTID"];
             let contactId = recipient["CONTACT_ID"];
             let emailAddress = recipient["EMAIL_ADDRESS"];
@@ -199,25 +200,36 @@ BulkMailUtils.sendBulkMail = function (pBulkMailId, pIsTestRun, pUser)
             let organisationId = recipient["ORGANISATION_ID"];
             let email = mails[contactId];
             let mailLogId = mailLogIds.get(contactId);
-            let recipientStatus = $KeywordRegistry.bulkMailRecipientStatus$sent();
+            let recipientStatus = $KeywordRegistry.bulkMailRecipientStatus$failed();
             if (email !== undefined && emailAddress)
             {
-                email.toRecipients = [emailAddress];
-                email.sender = emailSender;
-                email.subject = subjects[contactId];
+                try
+                {
+                    email.toRecipients = [emailAddress];
+                    email.sender = emailSender;
+                    email.subject = subjects[contactId];
+
+                    BulkMailUtils.storeEmlFile(pBulkMailId, mailrunId, mailLogId,email.getEML());
+                    isSuccess = email.send(sendUserTitle);
+                    if (!isSuccess)
+                    {
+                        errorMessage = logging.toLogString(email.getMailError(), true);
+                        var filterType = emailFilterProcessor.processError(errorMessage, contactId, emailAddress);
+                        if (filterType == $KeywordRegistry.emailFilterType$bounceHard())
+                            bouncedStatus = $KeywordRegistry.bulkMailRecipientStatus$hardBounce();
+                        else if (filterType == $KeywordRegistry.emailFilterType$bounceSoft())
+                            bouncedStatus = $KeywordRegistry.bulkMailRecipientStatus$softBounce();
 
-                BulkMailUtils.storeEmlFile(pBulkMailId, mailrunId, mailLogId,email.getEML());
-                isSuccess = email.send(sendUserTitle);
-                if (!isSuccess)
+                        recipientStatus = bouncedStatus || $KeywordRegistry.bulkMailRecipientStatus$failed();
+                    }
+                    else
+                    {
+                        recipientStatus = $KeywordRegistry.bulkMailRecipientStatus$sent();
+                    }
+                }
+                catch (ex)
                 {
-                    var errorMessage = logging.toLogString(email.getMailError(), true);
-                    var filterType = emailFilterProcessor.processError(errorMessage, contactId, emailAddress);
-                    if (filterType == $KeywordRegistry.emailFilterType$bounceHard())
-                        bouncedStatus = $KeywordRegistry.bulkMailRecipientStatus$hardBounce();
-                    else if (filterType == $KeywordRegistry.emailFilterType$bounceSoft())
-                        bouncedStatus = $KeywordRegistry.bulkMailRecipientStatus$softBounce();
-                    
-                    recipientStatus = bouncedStatus || $KeywordRegistry.bulkMailRecipientStatus$failed();
+                    errorMessage = logging.toLogString(ex, true);
                 }
             }
 
@@ -228,6 +240,7 @@ BulkMailUtils.sendBulkMail = function (pBulkMailId, pIsTestRun, pUser)
                     "MAIL_LOGID": mailLogId,
                     "MAIL_RUN_ID": mailrunId,
                     "CONTACT_ID": contactId,
+                    "ERRORMESSAGE": errorMessage,
                     "STATUS": recipientStatus,
                     "SENDER_EMAIL": emailSender,
                     "RECIPIENT_EMAIL": emailAddress,
@@ -306,6 +319,7 @@ BulkMailUtils.sendBulkMail = function (pBulkMailId, pIsTestRun, pUser)
         {
             
             let isSuccess = false;
+            let errorMessage = "";
             let contactId = recipientData[i]["CONTACT_ID"];
             let email = mails[contactId];
             let currentMailLogId = mailLogIds.get(contactId);
@@ -318,11 +332,19 @@ BulkMailUtils.sendBulkMail = function (pBulkMailId, pIsTestRun, pUser)
                 {
                     if(testRecipientData[j][1])
                     {
-                        email.toRecipients = [testRecipientData[j][1]];
                         let nextMailLogId = util.getNewUUID();
-                        email.body = StringUtils.replaceAll(email.body,currentMailLogId,nextMailLogId);
-                        currentMailLogId = nextMailLogId;
-                        isSuccess = email.send(sendUserTitle);
+                        try
+                        {
+                            email.toRecipients = [testRecipientData[j][1]];
+                            email.body = StringUtils.replaceAll(email.body,currentMailLogId,nextMailLogId);
+                            currentMailLogId = nextMailLogId;
+                            this.storeEmlFile(pBulkMailId, mailrunId, nextMailLogId,email.getEML());
+                            isSuccess = email.send(sendUserTitle);
+                        }
+                        catch(ex)
+                        {
+                            errorMessage = logging.toLogString(ex, true);
+                        }
 
                         Array.prototype.push.call(isSuccess ? successIds : failedIds, recipientData[i]["BULKMAILRECIPIENTID"]);
 
@@ -334,13 +356,13 @@ BulkMailUtils.sendBulkMail = function (pBulkMailId, pIsTestRun, pUser)
                                 "MAIL_LOGID":nextMailLogId,
                                 "MAIL_RUN_ID":mailrunId,
                                 "CONTACT_ID":testRecipientData[j][0],
+                                "ERRORMESSAGE": errorMessage || logging.toLogString(email.getMailError(), true) || "",
                                 "STATUS":(isSuccess ?$KeywordRegistry.bulkMailRecipientStatus$sent(): $KeywordRegistry.bulkMailRecipientStatus$failed()),
                                 "SENDER_EMAIL":emailSender,
                                 "RECIPIENT_EMAIL":testRecipientData[j][1],
                                 "MAILING_SUBJECT":email.subject,
                                 "DATE_SEND":vars.get("$sys.date")
-                            });
-                            this.storeEmlFile(pBulkMailId, mailrunId, nextMailLogId,email.getEML());
+                            }); 
                         }
                     }
                 }