Отправка электронной почты работает на локальном хосте, но не на размещенном веб-сайте (GoDaddy)

Я работал над веб-сайтом, использующим ASP.NET MVC, на этом веб-сайте вы можете напрямую отправить электронное письмо на определенный адрес электронной почты. Работает нормально, письмо отправляется без проблем. Нет, пока я не устроил это. Я все время получаю эту ошибку:

Была сделана попытка получить доступ к сокету способом, запрещенным его правами доступа 65.55.176.126:587

Описание: необработанное исключение произошло во время выполнения текущего веб-запроса. Просмотрите трассировку стека для получения дополнительных сведений об ошибке и ее происхождении в коде.

Сведения об исключении: System.Net.Sockets.SocketException: была сделана попытка получить доступ к сокету способом, запрещенным его разрешениями на доступ 65.55.176.126:587

Ошибка источника:

Необработанное исключение было создано во время выполнения текущего веб-запроса. Информацию о происхождении и местонахождении исключения можно определить с помощью трассировки стека исключений ниже.

Я не знаю, почему он работает на локальном хосте, но не на размещенном веб-сайте. Кто-нибудь, пожалуйста, помогите мне. Я новичок. Заранее спасибо. Вот мой контроллер:

    public ActionResult Index()
    {
        return View();
    }

    [HttpPost]
    [ValidateAntiForgeryToken]
    public async Task<ActionResult> Index(EmailFormModel model, IEnumerable<HttpPostedFileBase> files)
    {
        if (ModelState.IsValid)
        { 
            List<string> paths = new List<string>();

            foreach (var file in files)
            {
                if (file.ContentLength > 0)
                {
                    var fileName = Path.GetFileName(file.FileName);
                    var path = Path.Combine(System.Web.HttpContext.Current.Server.MapPath("~/App_Data/uploads"), fileName);
                    file.SaveAs(path);
                    paths.Add(path);
                }
            }

                var message = new MailMessage();
                foreach (var path in paths)
                {
                    var fileInfo = new FileInfo(path);
                    var memoryStream = new MemoryStream();
                    using (var stream = fileInfo.OpenRead())
                    {
                        stream.CopyTo(memoryStream);
                    }
                    memoryStream.Position = 0;
                    string fileName = fileInfo.Name;
                    message.Attachments.Add(new Attachment(memoryStream, fileName));
                }

                //Rest of business logic here
                string EncodedResponse = Request.Form["g-Recaptcha-Response"];
                bool IsCaptchaValid = (ReCaptcha.Validate(EncodedResponse) == "True" ? true : false);
                if (IsCaptchaValid)
                {

                    var body = "<p><b>Email From:</b> {0} ({1})</p><p><b>Subject:</b> {2} </p><p><b>Message:</b></p><p>{3}</p><p><b>Software Description:</b></p><p>{4}</p>";
                    message.To.Add(new MailAddress(""));  // replace with valid value 
                    message.From = new MailAddress("");  // replace with valid value
                    message.Subject = "(Inquire for SELLING)";
                    message.Body = string.Format(body, model.FromName, model.FromEmail, model.FromSubject, model.Message, model.Desc);
                    message.IsBodyHtml = true;
                    using (var smtp = new SmtpClient())
                    {
                        var credential = new NetworkCredential
                        {
                            UserName = "",  // replace with valid value
                            Password = ""  // replace with valid value
                        };
                        smtp.Credentials = credential;
                        smtp.Host = "smtp.live.com";
                        smtp.Port = 587;
                        smtp.EnableSsl = true;
                        smtp.SendCompleted += (s, e) =>
                        {
                            //delete attached files
                            foreach (var path in paths)
                                System.IO.File.Delete(path);
                        };
                        await smtp.SendMailAsync(message);
                        ViewBag.Message = "Your message has been sent!";

                        ModelState.Clear();
                        return View("Index");
                    }
                } else

                {
                    TempData["recaptcha"] = "Please verify that you are not a robot!";
                }

            } return View(model);

        }

person Kendall H.    schedule 12.07.2016    source источник
comment
У вас есть это в комментарии // replace with valid value. Вы действительно заменили их действительными значениями?   -  person Andrew    schedule 12.07.2016
comment
@ Андрей. Да, сэр, я вложил в это правильное значение.   -  person Kendall H.    schedule 12.07.2016
comment
Не могли бы вы добавить текст сообщения об ошибке, которое вы получаете, а не снимок экрана. Это самое важное доказательство в вашем вопросе, и оно скрыто на изображении. Тот, кто столкнется с этой проблемой, не найдет этого вопроса.   -  person spender    schedule 12.07.2016
comment
@spender Я просто редактирую свой вопрос, сэр.   -  person Kendall H.    schedule 12.07.2016


Ответы (1)


Думаю, это может быть тот порт, который вы используете. Вам необходимо использовать другую библиотеку SMTP (вместо StmpClient), если ваш порт превышает 465 согласно msdn.

https://msdn.microsoft.com/en-us/library/system.net.mail.smtpclient.enablessl%28v=vs.110%29.aspx?f=255&MSPPError=-2147217396

person Andrew    schedule 12.07.2016
comment
Я поменял свой порт. И больше нет ошибок, сэр. Но когда я пытаюсь его отправить, он просто продолжает подключаться и не отправляет вообще. Что может быть причиной этого? Спасибо. - person Kendall H.; 12.07.2016
comment
Это должен быть любой порт, разрешенный вашим почтовым сервером smtp. Если они разрешают только тот, который указан в вашем вопросе, возможно, вам нужно сохранить тот же порт и полностью изменить код - person Andrew; 12.07.2016