以qq邮件为例
- 登录https://mail.qq.com/
- 修改:登录qq邮箱->设置->账户->开启服务:POP3/SMIP服务
- settings.py中配置
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.qq.com'
EMAIL_PORT = 25
EMAIL_HOST_USER = 'xxxx@qq.com'
EMAIL_HOST_PASSWORD = '******'
EMAIL_USE_TLS = True
- 在项目目录下新建celery_tasks文件夹(python package),在该文件夹下新建文件tasks.py
- 在tasks.py中写celery任务代码
import os
import django
import time
from celery import Celery
from django.conf import settings
from djang.core.mail import send_mail
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'tiantianxiansheng.settings')
django.setup()
app = Celery('celery_tasks.tasks',broker='redis://你想使用的redis的ip:redis的端口(一般为6379)/1)
@app.task
def send_register_active_email(to_email,username,token):
'''发送激活邮件'''
subject = 'xxx'
message = ''
html_messge = 'xxx'
sender = 'xxx@qq.com'
receiver = 'xxx.com'
send_mail(subject,message,html_message=html_message,sender,receiver)
- veiws中
from celery_tasks.tasks import send_register_active_email
email = request.POST.get('email)
send_register_active_email.delay(email)
- 在项目目录下启动celery
celery -A celery_tasks.tasks worker --loglevel=info
- celery执行任务成功时,会在终端显示:Received task 和 succeeded 信息