public static void SendEmail(String toEmail, String templateName, NBrightInfo dataObj, String emailsubjectresxkey, String fromEmail,String lang) { dataObj = ProcessEventProvider(EventActions.BeforeSendEmail, dataObj, templateName); if (!dataObj.GetXmlPropertyBool("genxml/stopprocess")) { if (lang == "") lang = Utils.GetCurrentCulture(); var emaillist = toEmail; if (emaillist != "") { var emailsubject = ""; if (emailsubjectresxkey != "") { var resxpath = StoreSettings.NBrightBuyPath() + "/App_LocalResources/Notification.ascx.resx"; emailsubject = DnnUtils.GetLocalizedString(emailsubjectresxkey, resxpath, lang); if (emailsubject == null) emailsubject = emailsubjectresxkey; } // we can't use StoreSettings.Current.Settings(), becuase of external calls from providers to this function, so load in the settings directly var modCtrl = new NBrightBuyController(); var storeSettings = modCtrl.GetStoreSettings(dataObj.PortalId); var strTempl = modCtrl.GetTemplateData(-1, templateName, lang, storeSettings.Settings(), storeSettings.DebugMode); var emailbody = GenXmlFunctions.RenderRepeater(dataObj, strTempl, "", "XMLData", lang, storeSettings.Settings()); if (templateName.EndsWith(".xsl")) emailbody = XslUtils.XslTransInMemory(dataObj.XMLData, emailbody); if (fromEmail == "") fromEmail = storeSettings.AdminEmail; var emailarray = emaillist.Split(','); emailsubject = storeSettings.Get("storename") + " : " + emailsubject; foreach (var email in emailarray) { if (!string.IsNullOrEmpty(email.Trim()) && Utils.IsEmail(fromEmail.Trim()) && Utils.IsEmail(email.Trim())) { // multiple attachments as csv with "|" seperator DotNetNuke.Services.Mail.Mail.SendMail(fromEmail.Trim(), email.Trim(), "", emailsubject, emailbody, dataObj.GetXmlProperty("genxml/emailattachment"), "HTML", "", "", "", ""); } } } } ProcessEventProvider(EventActions.AfterSendEmail, dataObj, templateName); }