private void MailSend(long siteId, FormMailModel mail, string mailSubject, string mailBody, System.Collections.ArrayList fileList, string recipientIds) { string SitesTitle = SitesDAO.GetInfo(siteId).Title;//網站名稱 IEnumerable <long> recipientIdList = recipientIds.Split(',').Select(id => long.Parse(id)); IEnumerable <FormItem> formItems = FormItemDAO.GetItems(recipientIdList); string rootUrl = Utility.GetRootUrl() + "/"; foreach (FormItem item in formItems) { if (string.IsNullOrWhiteSpace(item.Email)) { continue; } FormCheckStatus status = (FormCheckStatus)item.CheckStatus; string result = status == FormCheckStatus.正取 ? "報名成功" : status.ToString(); string subject = mailSubject.Replace("[RegTime]", item.CreateDate.ToString(WebInfo.DateFmt)) .Replace("[RegName]", item.Name) .Replace("[RegGender]", item.Sex) .Replace("[RegResult]", result); string receiveUrl = $"{ rootUrl }Form/MailRead/{ mail.ID }?itemId={ item.ID }"; string body = mailBody.Replace("[RegTime]", item.CreateDate.ToString(WebInfo.DateFmt)) .Replace("[RegName]", item.Name) .Replace("[RegGender]", item.Sex) .Replace("[Receive]", receiveUrl) .Replace("[RegPhone]", item.Mobile) .Replace("[RegTel]", item.Phone) .Replace("[RegEmail]", item.Email) .Replace("[RegResult]", result); emailService.SendMailWithFiles(siteId, item.Email, item.Name, subject, body, fileList, mail.SenderEmail, SitesTitle); FormMailDAO.WriteLog(mail.ID, item.ID); } }
public ActionResult MailView(long siteId, long menuId, long id) { ViewBag.UploadUrl = Golbal.UpdFileInfo.GetVPathByMenuID(siteId, menuId).TrimEnd('/') + "/"; FormMailModel item = FormMailDAO.GetItem(id); return(View(item)); }
private void SendMailTest(long siteId, FormMailModel mail, string mailSubject, string mailBody, System.Collections.ArrayList fileList, string recipientEmails, bool?isEvent) { string[] emails = recipientEmails.Split(';'); string SitesTitle = SitesDAO.GetInfo(siteId).Title;//網站名稱 foreach (string email in emails) { emailService.SendMailWithFiles(siteId, email, email, mailSubject, mailBody, fileList, mail.SenderEmail, SitesTitle); } }
public string SendMail(long siteId, long menuId, FormMailModel mail, string[] fileList, string recipientIds, string recipientEmails, bool isTest, bool?isEvent = false) { if (mail == null || string.IsNullOrWhiteSpace(mail.MailBody)) { return("Mail 為 NULL"); } if (isTest && string.IsNullOrWhiteSpace(recipientEmails)) { return("測試郵件缺少收信人"); } if (!isTest && string.IsNullOrWhiteSpace(recipientIds)) { return("未選擇郵件發送用戶"); } SitesModels site = SitesDAO.GetInfo(siteId); System.Collections.ArrayList emailFiles = new System.Collections.ArrayList(); List <ResourceFilesModels> files = new List <ResourceFilesModels>(); if (fileList?.Length > 0) { string uploadPath = Golbal.UpdFileInfo.GetUPathByMenuID(siteId, menuId).TrimEnd('\\') + "\\"; foreach (string item in fileList) { ResourceFilesModels file = JsonConvert.DeserializeObject <ResourceFilesModels>(item); files.Add(file); emailFiles.Add(uploadPath + file.FileInfo); } } mail.Files = JsonConvert.SerializeObject(files); FormModel form = FormDAO.GetItem(mail.FormID); string mailSubject = mail.MailSubject.Replace("[WebsiteName]", site.Title).Replace("[SendDate]", DateTime.Now.ToString(WebInfo.DateFmt)); string mailBody = mail.MailBody.Replace("[WebsiteName]", site.Title).Replace("[SendDate]", DateTime.Now.ToString(WebInfo.DateFmt)); mailSubject = mailSubject.Replace("[FormName]", form.Title); mailBody = mailBody.Replace("[FormName]", form.Title); if (isTest) { SendMailTest(siteId, mail, mailSubject, mailBody, emailFiles, recipientEmails, isEvent); return("測試郵件發送成功"); } mail.ID = WorkLib.GetItem.NewSN(); FormMailDAO.SetItem(mail); MailSend(siteId, mail, mailSubject, mailBody, emailFiles, recipientIds); return("郵件發送成功"); }
public static void SetItem(FormMailModel item) { SQLData.Database db = new SQLData.Database(WebInfo.Conn); SQLData.TableObject tableObj = db.GetTableObject("FormMail"); tableObj.GetDataFromObject(item); string sql = "Select 1 From FormMail Where ID = " + item.ID; bool isNew = db.GetFirstValue(sql) == null; if (isNew) { tableObj.Insert(); } else { tableObj.Remove("ID"); tableObj.Remove("FormID"); tableObj.Remove("SendDate"); tableObj.Update(item.ID); } }