Я работаю на веб-сайте с использованием 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);
}
Вы это в комментариях '// заменить действительным value'. Вы действительно заменили их действительными значениями? – Andrew
@Andrew Да, сэр, я положил в нем правильное значение. –
Пожалуйста, вы можете добавить *** текст *** сообщения об ошибке, которое вы получите, а не скриншот. Это самый важный факт в вашем вопросе, и он скрыт в изображении. Любой, кто попадает в эту проблему, не найдет этого вопроса. – spender