public virtual async Task<ActionResult> Contact(ContactSupportViewModel contactForm) { if (!ModelState.IsValid) { return View(); } var user = GetCurrentUser(); var request = new ContactSupportRequest { CopySender = contactForm.CopySender, Message = contactForm.Message, SubjectLine = contactForm.SubjectLine, FromAddress = user.ToMailAddress(), RequestingUser = user }; var subject = $"Support Request for user '{user.Username}'"; await _supportRequestService.AddNewSupportRequestAsync(subject, contactForm.Message, user.EmailAddress, "Other", user); _messageService.SendContactSupportEmail(request); ModelState.Clear(); TempData["Message"] = "Your message has been sent to support. We'll be in contact with you shortly."; return View(); }
public void SendContactSupportEmail(ContactSupportRequest request) { string subject = string.Format(CultureInfo.CurrentCulture, "Support Request (Reason: {0})", request.SubjectLine); string body = string.Format(CultureInfo.CurrentCulture, @" **Email:** {0} ({1}) **Reason:** {2} **Message:** {3} ", request.RequestingUser.Username, request.RequestingUser.EmailAddress, request.SubjectLine, request.Message); using (var mailMessage = new MailMessage()) { mailMessage.Subject = subject; mailMessage.Body = body; mailMessage.From = Config.GalleryOwner; mailMessage.ReplyToList.Add(request.FromAddress); mailMessage.To.Add(Config.GalleryOwner); if (request.CopySender) { mailMessage.CC.Add(request.FromAddress); } SendMessage(mailMessage); } }