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

Django SMTP sendmail功能本地正常 部署后提交表单报500错误如何解决?

Django联系表单本地正常线上500错误排查方案
  • 先排查服务器SMTP端口连通性:多数云服务器默认封禁587、25这类邮件发送端口,你可以在服务器终端执行telnet [你的EMAIL_HOST对应地址] 587测试连通性。如果无法连通,优先去服务器安全组、系统防火墙开放587端口的出方向规则;或者直接切换为SMTP SSL协议,修改settings.py配置为:
EMAIL_PORT = 465
EMAIL_USE_TLS = False
EMAIL_USE_SSL = True
  • 检查邮箱服务商的访问限制:你使用Gmail作为收件箱,首先确认发件邮箱是否开启了第三方SMTP访问权限,Gmail需要开启应用专用密码、关闭安全拦截规则,部分国内邮箱还需要将服务器IP加入白名单,避免异地登录被拦截。
  • 修复代码语法错误:你views.py中name = request.POST.get('full-name').末尾多了一个英文句号,属于明显的语法错误,直接删除该句号即可。
  • 修正发件人配置:send_mail方法的第三个参数为发件人邮箱地址,你当前填写的是空字符串,多数SMTP服务不允许空发件人请求,直接将该参数替换为你的EMAIL_HOST_USER配置值即可。
  • 空值异常防护:你当前直接从request.POST中取参数,如果用户提交的表单缺少对应字段,request.POST.get会返回None,后续拼接邮件内容时可能触发异常,可以给get方法加默认值,比如request.POST.get('full-name', '')。
  • 临时开启DEBUG定位问题:测试阶段可以临时将线上settings.py的DEBUG参数改为True,提交表单后就能看到具体的错误栈信息,精准定位问题来源,测试完成后务必将DEBUG改回False,避免泄露服务器敏感信息。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 03:09:03