无法使用 Django Q 在 Django 中发送电子邮件



我正在学习Django Q,看看它是如何工作的,我正在尝试发送电子邮件。但是当我检查我的gmail时,没有收到电子邮件(我也检查了垃圾邮件)。它也没有显示错误。代码如下:

Settings.py

EMAIL_HOST = 'smtp.gmail.com'
EMAIL_PORT = 587
EMAIL_USE_TLS = True
EMAIL_USE_SSL = False
EMAIL_HOST_USER = '***@gmail.com'
EMAIL_HOST_PASSWORD = '***'
EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'
Q_CLUSTER = {
'name': 'appName',
'retry': 5,
'workers': 4,
'orm': 'default',
'workers': 8,
'recycle': 500,
'timeout': 60,
'compress': True,
'save_limit': 250,
'queue_limit': 500,
'cpu_affinity': 1,
'label': 'Django Q',
'redis': {
'host': '127.0.0.1',
'port': 6379,
'db': 0, }

}

View.py下面是我在用户成功登录

时调用的函数
def welcome_mail(user):
msg = 'Welcome to our website'
# send this message right away
async_task('django.core.mail.send_mail',
'Welcome',
msg,
'mail@gmail.com',
[user.email],
fail_silently=False,
)
print("Email Sent--------")        
# and this follow up email in one hour
msg = 'Here are some tips to get you started...'
schedule('django.core.mail.send_mail',
'Follow up',
msg,
'mail@gmail.com',
[user.email],
schedule_type=Schedule.ONCE,
next_run=timezone.now() + timedelta(hours=1))

您的后端是EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend',因此它只在控制台上打印电子邮件。这通常用于测试目的,例如不向(示例)用户发送电子邮件,但您可以在控制台中看到电子邮件应该是什么样子。

你可以使用SMTP后端[Django-doc]:

EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'

要从Django发送电子邮件,使用基于Google的帐户,你必须Allow不太安全的应用Google Admin here -https://admin.google.com/ac/security/lsa

祝你好运

相关内容

  • 没有找到相关文章

最新更新