// If your activity returns a value, derive from CodeActivity<TResult> // and return the value from the Execute method. protected override void Execute(CodeActivityContext context) { try { // Can read this information from config file. NotificationDefinition message = NotificationDef.Get(context) as NotificationDefinition; SmtpClient SmtpServer = ReadSMTPConfigurationInfo(message); MailMessage mail = new MailMessage(); // Sender mail.From = message.Sender; // Add attachments foreach (var attachment in message.Attachments) { mail.Attachments.Add(attachment); } // To Receipients foreach (var toRecept in message.ToRecipients) { mail.To.Add(toRecept); } // Cc Receipients if (message.CCRecipients != null) { foreach (var ccRecept in message.CCRecipients) { mail.To.Add(ccRecept); } } // Bcc Receipients if (message.BCCRecipients != null) { foreach (var bccRecept in message.BCCRecipients) { mail.To.Add(bccRecept); } } // Subject. mail.Subject = message.Subject; // Body. mail.Body = NotificationHelper.XSLTransform(XSLPath.Get(context), CustomerName.Get(context), EntityID.Get(context), CompanyName.Get(context), UserName.Get(context), BookingID.Get(context), SOID.Get(context)); // Body Type mail.IsBodyHtml = message.FormatType == EnumFormatType.HTML; // Send email. SmtpServer.Send(mail); Result.Set(context, EntityID.Get(context)); } catch (Exception ex) { ExceptionFormatter formater = new ExceptionFormatter(); string formatedException = formater.Format("Send mail error", ex); Common.MessageLogger.Instance.LogMessage(ex, formatedException, Common.Priority.High, 0, System.Diagnostics.TraceEventType.Critical, "WF Email Error", "Email"); throw ex; } }