无法使用 Django Q 在 Django 中发送电子邮件
Can't send email in Django Using Django Q
我正在学习 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 backend [Django-doc] 和:
EMAIL_BACKEND = 'django.core.mail.backends.<strong>smtp</strong>.EmailBackend'
要使用基于 Google 的帐户从 Django 发送电子邮件,您必须 Allow
安全性较低的应用程序 在 Google 管理员这里 - https://admin.google.com/ac/security/lsa
祝你好运
我正在学习 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 backend [Django-doc] 和:
EMAIL_BACKEND = 'django.core.mail.backends.<strong>smtp</strong>.EmailBackend'
要使用基于 Google 的帐户从 Django 发送电子邮件,您必须 Allow
安全性较低的应用程序 在 Google 管理员这里 - https://admin.google.com/ac/security/lsa
祝你好运