私は電子メールを送信し、私のajaxスクリプトに "成功" json応答を返すコントローラーを持っています。コントローラーから電子メールを送信すると遅れます
コントローラは次のようになります。
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult EmailSend(string input1)
{
EmailSignup person = new EmailSignup { emailhasbeensent = false, Email = input1 };
try
{
SmtpClient client = new SmtpClient("smtp.gmail.com", 587);
client.EnableSsl = true;
client.UseDefaultCredentials = false;
client.DeliveryMethod = SmtpDeliveryMethod.Network;
client.Credentials = new NetworkCredential("Email", "PW");
MailMessage message = new MailMessage();
message.From = new MailAddress("Email");
message.To.Add(person.Email);
message.Subject = "Thank you for subscribing";
message.Body = "You have now subscribed for our newsletter";
message.IsBodyHtml = true;
client.Send(message);
person.emailhasbeensent = true;
return Json(new { status = "success" });
}
catch (Exception ex)
{
return Json(new { status = "error" });
}
}
は、残念ながらそれが受け取る前にメールが「アイドル」のようなものを入力されているページいることを意味成功応答が送信される前に遅延があります成功応答。
応答がすぐに送信されるように、このプロセスを高速化する方法はありますか? そうでなければ、ローディングバーを実装して、何か「舞台裏で」起こっていることをユーザーに示すことができますか?
ありがとうございました!基本的に、もし私がSendemailコードを別のメソッドに移すと、私のコードは一度生きていれば失敗しにくくなりますか?私はそれを理解するので、私はこれを行うことによってボトルネックを防ぎますか? –