using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore.Mvc.RazorPages; using System.ComponentModel.DataAnnotations; using Microsoft.AspNetCore.Mvc; using System.Net.Mail; using System.Net; namespace contact.Pages { public class ContactFormModel { [Required] public string Name { get; set; } [Required] public string Company { get; set; } [Required, EmailAddress] public string Email { get; set; } [Required] public string Message { get; set; } } public class ContactModel : PageModel { public string Message { get; set; } [BindProperty] public ContactFormModel Contact { get; set; } public ActionResult OnPost() { if (!ModelState.IsValid) { return Page(); } //fuck those Russian spammers if(Contact.Company.ToLowerInvariant()!="google") SendMail(); //TODO: go to a successful submit page on the ayanova site //return Redirect("/confirm.html");//sample quickie page I made up return Redirect("https://ayanova.com/confirmed.htm"); } private void SendMail() { var MessageBody = $"Name:\r\n{Contact.Name}\r\n\r\nCompany:\r\n{Contact.Company}\r\n\r\nMessage:\r\n{Contact.Message}"; //SEND TO US using (var message = new MailMessage()) { message.To.Add(new MailAddress("support@ayanova.com")); message.From = new MailAddress(Contact.Email); message.Subject = $"Question about AyaNova from {Contact.Company}"; message.Body = MessageBody; using (var smtpClient = new SmtpClient("mail.ayanova.com")) { smtpClient.Host = "mail.ayanova.com"; smtpClient.Port = 2525; smtpClient.UseDefaultCredentials = false; //testing // smtpClient.EnableSsl=true; // smtpClient.Port=465; // smtpClient.DeliveryMethod= SmtpDeliveryMethod.Network; //NOTE: Do not use the noreply email address to send mail, it crashes the server somehow //****************************************************************************************************************** //****************************************************************************************************************** //TEST CRASH // smtpClient.Credentials = new System.Net.NetworkCredential("noreply@ayanova.com", "91768700489f8edd28aa71e3e0f4073eba54ce83c4c1a6a910700fa94094ddfd"); smtpClient.Credentials = new System.Net.NetworkCredential("webmaster@ayanova.com", "c63c17add818fca81cae71a241ea1b552675a86280b7e7e45d36cbf2e8f3bc0e"); //****************************************************************************************************************** //****************************************************************************************************************** smtpClient.Send(message); } } //SEND COPY TO CLIENT using (var message = new MailMessage()) { message.To.Add(new MailAddress(Contact.Email)); message.From = new MailAddress("support@ayanova.com"); message.Subject = $"Confirmation that your question about AyaNova has been received from {Contact.Company}"; message.Body = MessageBody; using (var smtpClient = new SmtpClient("mail.ayanova.com")) { smtpClient.Host = "mail.ayanova.com"; smtpClient.Port = 2525; smtpClient.UseDefaultCredentials = false; //NOTE: Do not use the noreply email address to send mail, it crashes the server somehow smtpClient.Credentials = new System.Net.NetworkCredential("webmaster@ayanova.com", "c63c17add818fca81cae71a241ea1b552675a86280b7e7e45d36cbf2e8f3bc0e"); smtpClient.Send(message); } } } public void OnGet() { Message = "Your contact page."; } } }