Отправка почты с использованием Ajax.BeginForm не работает на сервере - PullRequest
0 голосов
/ 08 октября 2018

Я пытаюсь отправить почту с помощью Ajax.BeginForm в проекте Visual Studio 2013 MVC.

Он работает на локальном хосте или на IIS, я успешно отправляю почту, но когда я публикую на сервере, я получаюошибка вроде этого:

jquery-3.3.1.js:9600 POST http://draskinkaraca.com/Home/SendMail 500 (Internal Server Error)

Ошибка сервера в приложении '/'.Этот ресурс не может быть найден.Описание: HTTP 404. Ресурс, который вы ищете (или одна из его зависимостей), возможно, был удален, изменилось его имя или временно недоступен.Пожалуйста, просмотрите следующий URL и убедитесь, что он написан правильно.

Можете ли вы помочь мне, пожалуйста, что мне делать?Большое спасибо.

Запрошенный URL: / Home / SendMail

Вот моя Cshtml часть;

@using (Ajax.BeginForm("SendMail", "Home", FormMethod.Post, new AjaxOptions { OnSuccess = "OnSuccess", OnFailure = "OnFailure" }))
        {
            <div class="row">
                <div class="col-md-6 col-md-offset-3">
                    <form>
                        <div class="row">
                            <div class="col-md-6">
                                <div class="form-group">
                                    <input type="text" class="form-control" name="name" placeholder="Ad" required>
                                </div>
                            </div>
                            <div class="col-md-6">
                                <div class="form-group">
                                    <input type="text" class="form-control" name="surname" placeholder="Soyad" required>
                                </div>
                            </div>
                        </div>
                        <div class="form-group">
                            <input type="text" class="form-control" name="email" placeholder="Email" required>
                        </div>
                        <div class="form-group">
                            <input type="text" class="form-control" name="tel" placeholder="Telefon" required>
                        </div>
                        <div class="form-group">
                            <textarea rows="5" id="message" name="message" class="form-control" placeholder="Mesajınız"></textarea>
                        </div>
                        <button type="submit" id="btnSendMail" class="btn">Gönder</button>
                    </form>
                </div>
            </div>
        }

Здесьчасть моего контроллера;

    [HttpPost]
    public JsonResult SendMail(string name, string surname, string eMail, string tel, string message)
    {
        MailMessage ePosta = new MailMessage();
        ePosta.From = new MailAddress("info@xxxx.com");
        ePosta.To.Add("xxxx@hotmail.com");
        ePosta.Subject = "Siteden gelen mail !!";
        ePosta.SubjectEncoding = Encoding.UTF8;
        ePosta.BodyEncoding = Encoding.UTF8;
        ePosta.Body = "Ad Soyad : " + name + " " + surname + System.Environment.NewLine +
        "Mail : " + eMail + System.Environment.NewLine +
        "Telefon : " + tel + System.Environment.NewLine +
        "Mesaj : " + message;
        SmtpClient smtp = new SmtpClient();
        //
        smtp.Credentials = new System.Net.NetworkCredential("info@xxxx.com", "xxxx");
        smtp.Port = 587;
        smtp.Host = "webmail.xxxx.com";//webmail.xxxx.com

        smtp.EnableSsl = false;
        try
        {
            smtp.Send(ePosta);
        }
        catch (SmtpException ex)
        {
            throw new Exception("Mail Gönderme Hatasi", ex.InnerException.InnerException);

        }

        var result = "success";
        return Json(result, JsonRequestBehavior.AllowGet);
    }

Вот мои сценарии Jquery 3.3.1;

 <script src="Scripts/jquery-3.3.1.js"></script>
<script src="assets/js/custom.js"></script>
<script src="Scripts/Index.js"></script>
<script src="Scripts/jquery.unobtrusive-ajax.js"></script>
<script src="Scripts/toastr.js">

...