async private void DoGenerateMail(object obj) { try { WorkInProgress = true; if (DeliveryBatch != null) { var result = await RestHub.GenerateEmail(DeliveryBatch.Id); if (result.HttpCode == System.Net.HttpStatusCode.OK) { try { Microsoft.Office.Interop.Outlook.Application oApp = new Microsoft.Office.Interop.Outlook.Application(); Microsoft.Office.Interop.Outlook.MailItem mailItem = (Microsoft.Office.Interop.Outlook.MailItem)oApp.CreateItem(Microsoft.Office.Interop.Outlook.OlItemType.olMailItem); mailItem.To = "*****@*****.**"; mailItem.CC = "[email protected];[email protected]"; mailItem.Subject = "Reactions Mail"; mailItem.BodyFormat = Microsoft.Office.Interop.Outlook.OlBodyFormat.olFormatHTML; mailItem.HTMLBody = result.UserObject.ToString(); mailItem.Display(false); } catch (Exception ex) { var path = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop), $"{DeliveryBatch.BatchNumber}.html"); File.WriteAllText(path, result.UserObject.ToString()); AppInfoBox.ShowInfoMessage($"Unfortunately Outlook is not accessible. The prepared report will open in web browser, you may copy and paste in email manually."); Process.Start(path); } } else { AppErrorBox.ShowErrorMessage("Error While Generating Email . .", Environment.NewLine + result.HttpResponse); } DeliveryInProgress = Visibility.Hidden; } else { MessageBox.Show("From Batch, From Category, Delivery Batch Number Is Required . . ."); } WorkInProgress = false; } catch (Exception ex) { AppErrorBox.ShowErrorMessage("Can't generate mail report . .", ex.ToString()); } finally { WorkInProgress = false; } }