public static void SendFormData(this UmbracoHelper context, object form, bool saveMessage = true, bool showCcList = false, IEnumerable <IPublishedContent> attachments = null) { Dictionary <object, object> contextItems = getCurrentContextItems(); HttpContext Context = HttpContext.Current; ISubmitDetails details = form as ISubmitDetails; IConfirmationDetails confirm = form as IConfirmationDetails; try { if (!string.IsNullOrEmpty(details.FieldPattern)) { if (details.FieldPattern.Contains("{0}")) { Refactored.Email.Email.FieldPattern = details.FieldPattern; } else { Refactored.Email.Email.FieldDelimiters = details.FieldPattern; } } else { Refactored.Email.Email.FieldDelimiters = "[]"; } if (details != null && details.HtmlTemplateId > 0 && details.TextTemplateId > 0) { string subject = string.Empty; string htmlBody = string.Empty; string textBody = string.Empty; if (details.HtmlTemplateId > 0) { htmlBody = Refactored.Email.Email.ParseMessageTemplateContent( context.RenderTemplate(details.HtmlTemplateId).ToString(), form, out subject); } if (details.TextTemplateId > 0) { textBody = Refactored.Email.Email.ParseMessageTemplateContent( context.RenderTemplate(details.TextTemplateId).ToString(), form); if (string.IsNullOrEmpty(subject)) { subject = new Node(details.TextTemplateId).Name; } } SendEmail(details.FromEmail, details.ToEmail, subject, htmlBody, textBody, bcc: showCcList?null: details.BccEmail, cc: showCcList ? details.BccEmail : null, attachments: attachments); if (saveMessage) { MessageManager.CreateMessage(confirm == null ? details.FromEmail : confirm.SubmitterEmail, details.ToEmail, subject, htmlBody, textBody); } } if (confirm != null && (confirm.HtmlConfirmationTemplateId > 0 || confirm.TextConfirmationTemplateId > 0)) { string htmlBody = string.Empty; string textBody = string.Empty; string subject = string.Empty; if (confirm.HtmlConfirmationTemplateId > 0) { htmlBody = Refactored.Email.Email.ParseMessageTemplateContent( context.RenderTemplate(confirm.HtmlConfirmationTemplateId).ToString(), form, out subject); } if (confirm.TextConfirmationTemplateId > 0) { textBody = Refactored.Email.Email.ParseMessageTemplateContent( context.RenderTemplate(confirm.TextConfirmationTemplateId).ToString(), form); if (string.IsNullOrEmpty(subject)) { subject = new Node(confirm.TextConfirmationTemplateId).Name; } } SendEmail(confirm.FromEmail, confirm.SubmitterEmail, subject, htmlBody, textBody, attachments: attachments); } } finally { updateLocalContextItems(contextItems, Context); } }
public static void SendFormData(object form, NameValueCollection formData, bool saveMessage = true) { ISubmitDetails details = form as ISubmitDetails; if (details == null) { throw new ArgumentException("form must implement ISubmitDetails", "form"); } Dictionary <object, object> items = getCurrentContextItems(); HttpContext Context = HttpContext.Current; IConfirmationDetails confirm = form as IConfirmationDetails; try { if (!string.IsNullOrEmpty(details.FieldPattern)) { if (details.FieldPattern.Contains("{0}")) { Refactored.Email.Email.FieldPattern = details.FieldPattern; } else { Refactored.Email.Email.FieldDelimiters = details.FieldPattern; } } else { Refactored.Email.Email.FieldDelimiters = "[]"; } string subject = string.Empty; string htmlBody = string.Empty; string textBody = string.Empty; if (details.HtmlTemplateId > 0) { htmlBody = Refactored.Email.Email.ParseMessageTemplateContent( umbraco.library.RenderTemplate(details.HtmlTemplateId).ToString(), formData, out subject); } if (details.TextTemplateId > 0) { textBody = Refactored.Email.Email.ParseMessageTemplateContent( umbraco.library.RenderTemplate(details.TextTemplateId).ToString(), formData); if (string.IsNullOrEmpty(subject)) { subject = new Node(details.TextTemplateId).Name; } } Refactored.Email.Email.SendEmail(details.FromEmail, details.ToEmail, subject, htmlBody, textBody, bcc: details.BccEmail); if (saveMessage) { MessageManager.CreateMessage(confirm == null ? details.FromEmail : confirm.SubmitterEmail, details.ToEmail, subject, htmlBody, textBody); } if (confirm != null) { if (confirm.HtmlConfirmationTemplateId > 0 || confirm.TextConfirmationTemplateId > 0) { htmlBody = string.Empty; textBody = string.Empty; if (confirm.HtmlConfirmationTemplateId > 0) { htmlBody = Refactored.Email.Email.ParseMessageTemplateContent( umbraco.library.RenderTemplate(confirm.HtmlConfirmationTemplateId).ToString(), formData, out subject); } if (confirm.TextConfirmationTemplateId > 0) { textBody = Refactored.Email.Email.ParseMessageTemplateContent( umbraco.library.RenderTemplate(confirm.TextConfirmationTemplateId).ToString(), formData); if (string.IsNullOrEmpty(subject)) { subject = new Node(confirm.TextConfirmationTemplateId).Name; } } Refactored.Email.Email.SendEmail(details.FromEmail, confirm.SubmitterEmail, subject, htmlBody, textBody); } } } finally { updateLocalContextItems(items, Context); } }