celery异步发送邮箱


django-settings配置

# 发送的邮箱
EMAIL_HOST_USER = "xxxxxxxxxxx"
# 授权码
EMAIL_HOST_PASSWORD = "xxxxxxxxxxxxxxxx"
# 这里必须turn 要不成功
EMAIL_USE_TLS = True
EMAIL_FROM = "956973503@qq.com"
DEFAULT_FROM_EMAIL = EMAIL_HOST_USER

在项目下建一个celery_tasks文件夹,在celery_tasks文件夹下建一个tasks.py文件


import smtplib
from email.mime.text import MIMEText
from email.utils import formataddr

from celery import Celery
app = Celery('celery_tasks.tasks',broker='redis:127.0.0.1:6379/4',worker='redis:127.0.0.1:6379/5')


@app.task
def send_mail_task():
    # # 定义参数
    my_mail = "2906552528@qq.com"

    # 授权码
    my_pass = "wstfcvcznqxcdfci"
    # 声明邮件对象
    msg = MIMEText('很高兴遇见你', 'plain', 'utf-8')

    # 设置发送方对象
    msg['From'] = formataddr(['在线教育平台', my_mail])

    # 设置收件方对象
    msg['To'] = formataddr(['尊敬的客户', '2906552528@qq.com'])

    # 设置标题
    msg['Subject'] = '深知你是梦'

    # 设置smtp服务器
    server = smtplib.SMTP_SSL("smtp.qq.com", 465)

    # 登录邮箱
    server.login(my_mail, my_pass)

    # 发送邮件
    server.sendmail(my_mail, ['956973503@qq.com'], msg.as_string())
    print('发送成功')
    # 关闭smtp连接
    server.quit()
运行Celery WORKER 的命令
CELERY -A 文件路径 worker -l info 
redis开启服务server = redis-server
View Code


 
原文地址:https://www.cnblogs.com/anle123/p/13356128.html