You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET Core MVC部署GoDaddy共享主机时仅首页可发送邮件问题

问题排查与修复步骤

  • 前端提示不生效问题
    你在Contact接口中把返回消息存储在TempData["Message"],但联系我们视图中读取的是ViewBag.Message,二者不匹配导致哪怕出现异常、表单提交失败,前端也不会弹出任何提示,你误以为没有报错。
    修复方案:统一存储和读取的变量,要么把接口中TempData["Message"]改为ViewBag.Message,要么把视图中ViewBag.Message改为TempData["Message"]。
  • 表单提交路径问题
    你贴出的联系我们视图代码缺失了开头的<form>标签,确认表单标签是否补全了method="post"属性,以及提交地址是否正确指向了Home/Contact接口,避免表单提交到错误地址或者用GET方式提交被拦截。
  • 前端验证规则错误
    联系我们页面的姓名输入框正则规则data-parsley-pattern="^[a-zA-Z]+$+%"存在语法错误,多余的+%会导致合法输入也被判定为不通过,表单根本不会发起提交请求。
    修复方案:调整正则规则为符合你业务要求的格式,例如允许中文、英文和空格的规则为^[\u4e00-\u9fa5a-zA-Z\s]+$。
  • 模型验证拦截问题
    ASP.NET Core默认开启模型验证,如果ContactModel的字段标注了必填规则、或者输入内容不符合字段要求,请求会直接被拦截,不会进入你的接口逻辑。
    修复方案:在Contact接口开头加入模型验证判断,输出验证错误:
if(!ModelState.IsValid)
{
    var errorMsg = "表单填写错误:" + string.Join(";", ModelState.Values.SelectMany(v => v.Errors).Select(e => e.ErrorMessage));
    TempData["Message"] = errorMsg;
    return View("~/Views/Home/Contact.cshtml");
}
  • 发件人格式触发反垃圾规则
    你在发件人地址中加了多余的空格:"Student New Enquiry< noreply@domain.com > ",格式不规范的邮件很容易被Gmail判定为垃圾邮件,甚至被SMTP服务器直接拒收。
    修复方案:改用MailAddress的重载方法设置发件人,避免格式错误:
msg.From = new MailAddress("noreply@domain.com", "Student New Enquiry");
  • 日志与垃圾邮件检查
    打开Global.SaveError存储的错误日志,确认是否有未捕获的异常。如果日志显示发信成功但收不到邮件,去Gmail的垃圾邮件、促销邮件、社交邮件分类中查找,同时可以将noreply@domain.com加入Gmail白名单避免被拦截。
  • 组件过时问题(可选)
    .NET Core中SmtpClient已被官方标记为过时,兼容性和稳定性较差,推荐替换为MailKit/MimeKit库实现邮件发送功能。

内容的提问来源于stack exchange,提问作者Prashant Sharma

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 02:12:03