예제 #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
        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);
            }
        }
예제 #4
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("郵件發送成功");
        }
예제 #5
0
        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);
            }
        }