Django用谷歌SMTP发送电子邮件

时间:2015-08-30 22:43:08

标签: python django email smtp

我一直在尝试使用我的Django应用程序处理电子邮件而无法使用。我一直在阅读类似的问题,但仍然无法确定我的错误。

我的settings.py看起来像:

EMAIL_HOST = 'smtp.gmail.com'
EMAIL_HOST_USER = 'email@domain'
EMAIL_HOST_PASSWORD = 'pass'
EMAIL_PORT = 587
EMAIL_USE_TLS = True
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'

我发送电子邮件的代码如下:

def application(request):

        if request.method == 'GET':
                form = ApplyForm()
        else:
                form = ApplyForm(request.POST)
                if (form.is_valid()):
                        try:
                                subject = 'Overland Application'
                                from_email = form.cleaned_data['useremail']
                                phone = form.cleaned_data['phone']
                                names = form.cleaned_data['names']
                                year = form.cleaned_data['year']
                                make = form.cleaned_data['make']
                                model = form.cleaned_data['model']
                                message = str(names) + '\n' + str(from_email) + '\n' + str(phone) + '\n' + str(year) + '\n' + str(make) + '\n' + str(model)
                                try:
                                        send_mail(subject, message, settings.EMAIL_HOST_USER, ['email@domain.com'], fail_silently=False)
                                except BadHeaderError:
                                        return HttpResponse('Invalid header found.')
                                return redirect('thanks')
                        except:
                                pass
        return render(request, "overland/apply.html", {'form': form})

其他一些信息是,它似乎正在访问我的电子邮件帐户,因为我收到了来自Google的电子邮件,说我的帐户上有来自服务器位置的可疑访问权限。

我还从实时服务器ping了smtp服务器,以确保它正在通信。

我不确定我的某个地方是否是一个小的语法错误,或者我正在使用django邮件功能不正确,因为本地它似乎工作并将重定向到我的感谢页面,但当我这样做时,它似乎只需重新加载页面而不发送任何内容。

提前感谢任何信息。

1 个答案:

答案 0 :(得分:0)

这是gmail本身的一个问题。遇到此问题的任何人都应首先尝试进入安全设置并允许访问不太安全的应用程序。如果这不起作用,请尝试访问https://accounts.google.com/DisplayUnlockCaptcha,然后再使用您的应用程序发送电子邮件。

相关问题