Развертывание веб-приложения сегодня вечером. Почему он не может найти / связаться, я попробовал fullurl.com/contact и другие идеи, но в файле есть кнопка «Отправить» на странице, которая постоянно говорит мне, что это не так. Видите ли вы что-то не так со следующим, что может вызвать это?
Это работало нормально до того, как я переместился с новыми учетными данными smtp. Любые azure шаги по развертыванию, которые я мог пропустить, которые могли бы привести к тому, что он не найдет / не найдет контакт по запросу после публикации?
Ошибка с веб-сайта:
contact 404 xhr jquery.min.js:2 222 B 44 ms
send @ jquery.min.js:2
ajax @ jquery.min.js:2
(anonymous) @ contact:381
homecontroller.cs:
[HttpPost]
[Route("contact")]
public JsonResult SendContactEmail(string name, string email, string message, string phone, string bot)
{
if (string.IsNullOrWhiteSpace(email) || string.IsNullOrWhiteSpace(message) || string.IsNullOrWhiteSpace(name))
{
return Json(false);
}
if (string.IsNullOrEmpty(bot))
{
string subject = String.Format("{0} my contact form", "");
string messageBody = "<html><body style=\"font-family: Segoe UI, Helvetica, sans-serif;\">";
var sb = new StringBuilder();
sb.Append("Name: " + name);
sb.Append("<br />");
sb.Append("Email: " + email);
sb.Append("<br />");
sb.Append("Phone number: " + phone);
sb.Append("<br />");
sb.Append("Message: " + message);
sb.Append("<br /> ");
messageBody += sb.ToString();
EmailHelper.SendEmail(new EmailInfo
{
Body = messageBody,
FromName = "my name",
Subject = subject,
ToAddresses = new StringCollection { "myemail@email.com" }
}, "");
}
return Json(true);
}
[ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)]
public IActionResult Error()
{
return View(new ErrorViewModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier });
}
}
public class EmailInfo
{
public string FromName { get; set; }
public StringCollection ToAddresses { get; set; }
public string Subject { get; set; }
public string Body { get; set; }
}
public class EmailHelper
{
public static bool SendEmail(EmailInfo emailInfo, string attachmentPath)
{
//TODO: From Email information -- Needs to be your email account username and password
string smtpMailServer = "smtp.sendgrid.net";
string smtpUserName = "account";
string smtpPassword = "key";
int smtpPort = 587;
var oMailMessage = new MailMessage();
var fromMailAddress = new MailAddress(smtpUserName, "my addy");
oMailMessage.From = fromMailAddress;
oMailMessage.IsBodyHtml = true;
oMailMessage.Priority = MailPriority.High;
oMailMessage.Subject = emailInfo.Subject;
oMailMessage.Body = emailInfo.Body;
foreach (string to in emailInfo.ToAddresses)
{
oMailMessage.To.Add(to);
}
var oSmtpClient = new SmtpClient(smtpMailServer, smtpPort);
oSmtpClient.Credentials = new NetworkCredential(smtpUserName, smtpPassword);
oSmtpClient.EnableSsl = false;
try
{
oSmtpClient.Send(oMailMessage);
return true;
}
catch (Exception ex)
{
Console.Write(ex.Message);
return false;
}
}
}
}
Ajax скрипт, появляющийся на странице / странице контакта:
document.querySelector("form").addEventListener("submit", function (e) {
e.preventDefault();
$.ajax({
type: 'post',
url: '/contact',
data: $(this).serialize(),
success: function (res) {
$(window).scrollTop(350);
if (res) {
$(".contact-form").html("<h3 style='color: #c2ae79; text-align: center' class='wow fadeInUp' data-wow-duration='1s'>Thank you for contacting us! We will be in touch shortly.</p>");
} else {
$(".contact-form").prepend("<h3 style='color: red; text-align: center'>Please check all required fields.</p>");
}
}
});
});