2016-07-12 2 views
1

Я работаю на веб-сайте с использованием ASP.NET MVC на этом веб-сайте, вы можете напрямую отправить электронное письмо на определенный адрес электронной почты. Он работает нормально, электронная почта отправляется без проблем. Пока я не разместил его. Я продолжаю получать эту ошибку:Отправка электронной почты работает в локальном хостинге, но не на размещенном веб-сайте (GoDaddy)

An attempt was made to access a socket in a way forbidden by its access permissions 65.55.176.126:587

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.Net.Sockets.SocketException: An attempt was made to access a socket in a way forbidden by its access permissions 65.55.176.126:587

Source Error:

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

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

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); 

     } 
+0

Вы это в комментариях '// заменить действительным value'. Вы действительно заменили их действительными значениями? – Andrew

+0

@Andrew Да, сэр, я положил в нем правильное значение. –

+0

Пожалуйста, вы можете добавить *** текст *** сообщения об ошибке, которое вы получите, а не скриншот. Это самый важный факт в вашем вопросе, и он скрыт в изображении. Любой, кто попадает в эту проблему, не найдет этого вопроса. – spender

ответ

0

Я думаю, это может быть порт, который вы используете. Вам нужно использовать другую библиотеку 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

+0

Я изменил свой порт. И больше нет ошибки. Но когда я пытаюсь отправить его, он просто продолжает «подключаться», а не отправлять вообще. Что может быть причиной этого? Спасибо. –

+0

Это должен быть любой порт, который позволяет ваш почтовый сервер smtp. Если они разрешают только тот, который задан в вашем вопросе, возможно, вам нужно сохранить тот же порт и полностью изменить код – Andrew

Смежные вопросы