public ActionResult PreparePublicationMail(int ReleaseID, int CPID, string base64string, bool isDraft) { string PublishCP; string ToEmail = ""; Release PublishRelease; PublicationMailDetails PubliactionMail = new PublicationMailDetails(); using (IReleaseRepository db = new ReleaseRepository()) { PublishRelease = db.WhereAndInclude(r => r.ReleaseID == ReleaseID, r => r.Account) .Include(r => r.ReleaseCPs.Select(cp => cp.CP)).FirstOrDefault(); PublishCP = PublishRelease.ReleaseCPs.FirstOrDefault(cp => cp.CPID == CPID).CP.Name; db.GetEmployeesMailAddress(ReleaseID, isDraft).ToList().ForEach(s => ToEmail += s + "; "); PubliactionMail.To = ToEmail; PubliactionMail.BCC = "*****@*****.**"; // PubliactionMail.CC = "*****@*****.**"; string MailTypeSubject = isDraft ? "Draft " : "Official "; PubliactionMail.Subject = PublishRelease.Account.Name + " - Release " + PublishRelease.Name + " - " + PublishCP + " (" + MailTypeSubject + " - PREP ID " + ReleaseID.ToString() + ")"; PubliactionMail.ReleaseID = ReleaseID; PubliactionMail.CPID = CPID; // upload status screenshot Files.UploadImage(base64string, "Status" + ReleaseID.ToString(), true); PubliactionMail.imagePath = VirtualPathUtility.ToAbsolute("~/Content/Images/ScoreImages") + "/Status" + ReleaseID.ToString() + ".png"; } return(PartialView("PopUpMail", PubliactionMail)); }
public async Task <ActionResult> SendPublicationMail(PublicationMailDetails mail, StatusVM status, bool IsDarft) { try { MailMessage message = new MailMessage(); var SrcImage = VirtualPathUtility.ToAbsolute("~/Content/Images/ScoreImages") + "/Status" + mail.ReleaseID.ToString() + ".png"; var attachmentPath = System.Web.HttpContext.Current.Server.MapPath(SrcImage); var contentID = mail.ReleaseID.ToString() + ".png"; var src = "cid:" + contentID; var addresses = mail.To.Split(';'); if (!IsDarft) { message.Bcc.Add(mail.BCC); } addresses.Where(s => !string.IsNullOrWhiteSpace(s)).Distinct().ToList().ForEach(item => message.To.Add(item)); message.Subject = mail.Subject; message.Body = "<html>" + "<body>" + "<p style='color: black; font - family: calibary !important; font - size: 11px;'>" + (mail.beforeMessage != null ? mail.beforeMessage.Replace("\n", "<br/>") : "") + "</p>" + "<img width='50px' height='70px' src='" + src + "' >" + "<p style='color: black; font - family: calibary !important; font - size: 11px;'>" + (mail.afterMessage != null ? mail.afterMessage.Replace("\n", "<br/>") : "") + "</p>" + "</body>" + "</html>"; // declaring image settings Attachment inline = new Attachment(attachmentPath); inline.ContentDisposition.Inline = true; inline.ContentDisposition.DispositionType = DispositionTypeNames.Inline; inline.ContentId = contentID; inline.ContentType.MediaType = "image/png"; inline.ContentType.Name = Path.GetFileName(attachmentPath); message.Attachments.Add(inline); message.DeliveryNotificationOptions = DeliveryNotificationOptions.OnFailure; message.IsBodyHtml = true; var FileName = message.SendMail("_PRR", !IsDarft); inline.Dispose(); // formal publish - update Publicction details and save area scores in db if (!IsDarft) // is formal publish { await updatePublicationDetails(mail.ReleaseID, status.CPID, FileName); await SaveAreaScore(status); } deletePublicationMailIMG(mail.imagePath); return(Json(new { IsSent = true })); } catch (Exception ex) { return(Json(new { IsSent = false, Error = ex })); } }