收藏文章 楼主

Python+celery实现异步发送验证邮件

版块:IT/互联网   类型:普通   作者:小羊羔links   查看:268   回复:0   获赞:0   时间:2022-08-31 01:08:45

在用户注册的过程中,大部分网站除了要求输入手机号码外,还要求用户绑定常用的邮箱,以此来提高账户的安全性, 者通过邮件推送最新的产品信息,毕竟发送邮件比使用短信通知的成本要低太多。但如果用户在绑定邮箱的过程中输入了错误的邮箱地址,此时就需要验证用户输入的邮箱地址是否正确,因为验证的过程比较漫长,程序不可能中断在这里去等待用户验证成功,这是就可以使用异步的方式来发送验证邮件。

celery是一个基于Python开发的分布式异步消息任务队列,通过它可以轻松的实现任务的异步处理。今天我要使用Python+celery实现异步发送验证邮件,首先安装celery,可通过以下命令安装

pip install celery
注 如果是Windows操作系统,由于celery4.0正式版本后不再支持Windows操作系统,所以还需安装eventlet,即执行“pip install enentlet”命令,并通过eventlet启动celery

通过以下命令启动celery

celery -A celery_execute_task.sendmail worker --loglevel=info -P eventlet

出现如下图所示的内容即为celery启动成功。

通过celery实现发送验证邮件的使用方法如下


01   os.environ.setdefault('DJANGO_SETTINGS_MODULE''djangoweb.settings')

02   django.setup()

03    

04   创建实例对象

05   第一个parameter 可随意命名,但一般为本文件所在路径

06   # broker 指定中间人,斜杠后指定第几个数据库

07   app = Celery('celery_execute_task.sendmail'broker='redis://localhost:6379/3')

08    

09   定义任务函数

10   @app.task

11   def send_activate_email(to_email, username, token):

12       """发送激活邮件"""

13    

14       组织邮件信息

15       subject = '明日科技欢迎您'

16       message = ''

17       sender = settings.EMAIL_FROM

18       receiver = [to_email]

19       html_message = '<h1>%s, 欢迎您注册明日科技会员</h1>请点击下面链接激活您的账户<br/><a href="http://127.0.0.1:8000/mail/activate/%s">http://127.0.0.1:8000/mail/activate/%s</a>' % (username, token, token)

20    

21       send_mail(subject, message, sender, receiver, html_message=html_message)


小羊羔锚文本外链网站长https://seo-links.cn 
回复列表
默认   热门   正序   倒序

回复:Python+celery实现异步发送验证邮件

Powered by 小羊羔外链网 8.3.11

©2015 - 2024 小羊羔外链网

免费发软文外链 鄂ICP备16014738号-6

您的IP:3.224.220.101,2024-04-23 02:46:25,Processed in 0.05025 second(s).

支持原创软件,抵制盗版,共创美好明天!
头像

用户名:

粉丝数:

签名:

资料 关注 好友 消息