15

当使用发送电子邮件的视图时没有任何反应,然后我将 send_mail(...) 输入 python shell 并返回 1 但我没有收到任何电子邮件。

这是我的 settings.py

EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_PORT = 587
EMAIL_HOST_USER = 'workorbit@gmail.com'
EMAIL_HOST_PASSWORD = 'P@ssw0rd5'
EMAIL_USE_TLS = True

这是视图:

def send_email(request):
    send_mail('Request Callback', 'Here is the message.', 'workorbit@gmail.com',
        ['charl@byteorbit.com'], fail_silently=False)
    return HttpResponseRedirect('/')
4

3 回答 3

14

调整您的设置:

DEFAULT_FROM_EMAIL = 'workorbit@gmail.com'
SERVER_EMAIL = 'workorbit@gmail.com'
EMAIL_USE_TLS = True
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_PORT = 587
EMAIL_HOST_USER = 'workorbit@gmail.com'
EMAIL_HOST_PASSWORD = 'P@ssw0rd5'

调整您的代码:

from django.core.mail import EmailMessage

def send_email(request):
    msg = EmailMessage('Request Callback',
                       'Here is the message.', to=['charl@byteorbit.com'])
    msg.send()
    return HttpResponseRedirect('/')
于 2012-04-30T14:32:13.993 回答
0

Google 现在提供了一种生成密码的方法,您可以将其用于需要中继邮件的应用程序。它与您通过网络邮件登录时使用的密码不同。

登录 Google 并开始使用应用密码。这允许您使用 16 位密码访问 google 服务,包括发送电子邮件的能力。请参阅下文

https://support.google.com/accounts/answer/185833?hl=en

于 2019-03-24T04:33:04.817 回答
0

如果您不关心 防止标头注入:(您应该关心它:https ://docs.djangoproject.com/es/1.9/topics/email/#preventing-header-injection ,但让我们继续)

settings.py: _

EMAIL_HOST = 'smtp.gmail.com'
EMAIL_PORT = 587
EMAIL_HOST_USER = 'user@gmail.com'
EMAIL_HOST_PASSWORD = 'pass'
EMAIL_USE_TLS = True

views.py示例):

from django.views.generic import View
from django.core.mail import send_mail
from django.http import HttpResponse, HttpResponseRedirect

class Contacto(View):
        def post(self, request, *args, **kwargs):
            data = request.POST
            name = data.get('name', '')
            subject = "Thanks  %s !" % (name)
            send_mail(subject, data.get('message', ''), 'user@gmail.com', [data.get('email', '')], fail_silently=False)
        return HttpResponseRedirect('/')

这是发送电子邮件的危险方式

当您第一次尝试发送电子邮件时,您会收到一封谷歌电子邮件,建议您不要这样做。您必须“激活”“安全性较低的应用程序”(https://www.google.com/settings/security/lesssecureapps)并重试。第二次工作。

于 2016-04-06T04:39:39.007 回答