zoukankan      html  css  js  c++  java
  • Celery异步发送邮件

    一、settings.py

     1 # 发送邮件配置
     2 EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
     3 # smpt服务地址
     4 EMAIL_HOST = 'smtp.163.com'
     5 EMAIL_PORT = 25
     6 # 发送邮件的邮箱
     7 EMAIL_HOST_USER = 'smartli_it@163.com'
     8 # 在邮箱中设置的客户端授权密码
     9 EMAIL_HOST_PASSWORD = 'smartli123'
    10 # 收件人看到的发件人
    11 EMAIL_FROM = '天天生鲜<smartli_it@163.com>'

    二、编写 tasks.py

    在项目根目录下创建包和py文件

    发送邮件代码如下

     1 from django.core.mail import send_mail
     2 from django.conf import settings
     3 from celery import Celery
     4 
     5 
     6 # 在任务处理者一端加这几句
     7 import os
     8 import django
     9 os.environ.setdefault("DJANGO_SETTINGS_MODULE", "dailyfresh.settings")
    10 django.setup()
    11 
    12 app = Celery('celery_tasks.tasks', broker='redis://127.0.0.1:6379/8')
    13 
    14 
    15 @app.task
    16 def send_register_active_email(to_email, username, token):
    17     """发送激活邮件"""
    18     subject = '天天生鲜欢迎信息'
    19     message = ''
    20     sender = settings.EMAIL_FROM
    21     receiver = [to_email]
    22     html_message = '<h1>%s, 欢迎您成为天天生鲜注册会员</h1>请点击下面链接激活您的账户<br/><a href="http://127.0.0.1:8000/user/active/%s">http://127.0.0.1:8000/user/active/%s</a>' % (username, token, token)
    23 
    24     send_mail(subject, message, sender, receiver, html_message=html_message)

    三、在 views.py 调用

    导入模块

    调用

    四、启动服务

    # 启动 Redis
    redis-server
    
    # 启动 Celery (先进入到项目根目录下)
    celery -A celery_taskes.tasks worker -l info
  • 相关阅读:
    Java实现批量下载《神秘的程序员》漫画
    mysql远程连接:ERROR 1130 (HY000): Host '*.*.*.*' is not allowed to connect to this MySQL server解决办法
    opencv学习_15 (利用cmake查看opencv的源码)
    jobs 命令
    中断子系统6_中断嵌套处理
    JPA一对多映射
    JPA Map映射
    JPA集合映射
    JPA删除实体
    JPA查找实体
  • 原文地址:https://www.cnblogs.com/mxsf/p/10296471.html
Copyright © 2011-2022 走看看