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

Django表单提交创建对象后无法向工作邮箱发送邮件问题

Django联系表单邮件发送失败排查与修复

问题场景

个人网站的"Contact Me"表单提交后,数据能成功保存到数据库,但无法发送邮件到目标工作邮箱myworkemail@gmail.com。

核心错误排查与修复

1. 收件人邮箱格式错误

在contact视图的send_mail调用中,recipient_list参数填写不完整:

recipient_list=['myworkemail.com'],  # 缺少@gmail.com后缀,SMTP无法识别有效收件人

修复后:

recipient_list=['myworkemail@gmail.com'],

这是导致邮件无法送达的最直接原因。

2. Gmail账户与应用密码验证

确保Gmail账户配置符合要求:

  • 已开启两步验证:Gmail应用密码仅对开启两步验证的账户生效,未开启则无法生成和使用应用密码。
  • 应用密码正确:确认EMAIL_HOST_PASSWORD中的my_app_pass是Gmail生成的专用应用密码,而非原账户密码。
  • 无需开启"不太安全的应用访问":Gmail已淘汰该选项,必须使用应用密码或OAuth2认证。

3. SMTP配置细节确认

当前Settings配置无明显错误,但可做以下验证:

  • EMAIL_PORT=465配合EMAIL_USE_SSL=True是Gmail SSL连接的正确组合,无需调整。
  • DEFAULT_FROM_EMAIL与EMAIL_HOST_USER保持一致,避免发件人身份验证异常。

4. 利用异常信息定位问题

视图已捕获并返回异常提示,可通过前端展示的错误内容进一步排查:

  • 若提示SMTP认证失败,重点检查应用密码有效性和两步验证状态。
  • 若提示收件人无效,再次确认邮箱格式是否正确。

修复后的完整视图代码片段

def contact(request):
    banner = get_object_or_404(Banner, page='contact')

    if request.method == 'POST':
        name = request.POST.get('name')
        email = request.POST.get('email')
        subject = request.POST.get('subject')
        message = request.POST.get('message')

        submission = ContactSubmission.objects.create(
            name=name,
            email=email,
            subject=subject,
            message=message
        )
        try:
            send_mail(
                subject=f"New Contact Submission from {name}",
                message=f"Name: {name}\nEmail: {email}\nSubject: {subject}\nMessage: {message}",
                from_email=settings.DEFAULT_FROM_EMAIL,
                recipient_list=['myworkemail@gmail.com'],  # 修复收件人地址
                fail_silently=False,
            )
            messages.success(request, "Your message has been submitted successfully!")
        except Exception as e:
            messages.error(request, f"An error occurred while sending the email: {str(e)}")

        return redirect('contact')

    return render(request, 'pages/contact.html', {'banner': banner})

内容的提问来源于stack exchange,提问作者Omar Saleem Haji

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 21:12:43