コード例 #1
0
        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);
            }
        }
コード例 #2
0
        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));
        }
コード例 #3
0
        public ActionResult MailLogList(long siteId, long menuId, long id, bool?isEvent)
        {
            IEnumerable <FormMailLogModel> logs = FormMailDAO.GetMailLogs(id);

            ViewBag.FormItems = FormItemDAO.GetItems(logs.Select(log => log.FormItemID));

            ViewBag.SiteID  = siteId;
            ViewBag.IsEvent = isEvent ?? false;
            return(View(logs));
        }
コード例 #4
0
        public ActionResult MailLog(long siteId, long menuId, long formId, bool?isEvent)
        {
            ViewBag.SiteID  = siteId;
            ViewBag.MenuID  = menuId;
            ViewBag.IsEvent = isEvent ?? false;

            IEnumerable <FormMailModel> items = FormMailDAO.GetItems(formId);

            return(View(items));
        }
コード例 #5
0
        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("郵件發送成功");
        }
コード例 #6
0
ファイル: FormController.cs プロジェクト: jim-deng-git/Ask
 public string MailRead(long id, long itemId)
 {
     FormMailDAO.WriteReadLog(id, itemId);
     return("<script language=\"javascript\">window.opener=null;window.close();</script>");
 }