发送电子邮件在本地主机中有效,但在托管网站(GoDaddy)中无效
本文关键字:网站 GoDaddy 无效 有效 电子邮件 主机 | 更新日期: 2023-09-27 17:56:25
我一直在使用 ASP.NET MVC的网站上工作,在这个网站上,您可以直接向特定的电子邮件地址发送电子邮件。它工作正常,电子邮件发送没有问题。直到我托管它。我不断收到此错误:
尝试以套接字禁止的方式访问套接字 访问权限 65.55.176.126:587
说明:执行 当前 Web 请求。请查看堆栈跟踪以获取更多信息 有关错误及其在代码中起源位置的信息。
异常详细信息:System.Net.Sockets.Socket异常:尝试是 以访问权限禁止的方式访问套接字 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);
}
我认为这可能是您正在使用的端口。如果根据 msdn,您的端口高于 465,则需要使用不同的 SMTP 库(而不是 StmpClient)。
https://msdn.microsoft.com/en-us/library/system.net.mail.smtpclient.enablessl%28v=vs.110%29.aspx?f=255&MSPPError=-2147217396