微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我想安排在某个选定日期发送电子邮件我怎样才能在 DRF 中做到这一点?

如何解决我想安排在某个选定日期发送电子邮件我怎样才能在 DRF 中做到这一点?

我想将接收者的电子邮件地址和计划日期作为输入,然后将邮件发送到计划日期。我在 views.py 中有以下几行代码 实际上,我期待在 django 中使用 apscheduler 包进行异步后台任务,但任何建议和解决方案都是值得赞赏的

class SendMailView(APIView):

    def post(self,request,*args,**kwargs):

    '''
    POST Method for sending Email
    '''     
       send_to = request.data.get('receiver_email') 
       schedule_for = request.data.get('schedule_date')

       email_plaintext_message = " Hello"
       send_mail(
                # title:
                "Test mail,# message:
                email_plaintext_message,# from:
                 'some@gmail.com,# to:
                [send_to]

            )


       return Response({"status":"Email Send"},status=status.HTTP_200_OK)
        

解决方法

考虑使用 Celery。 您需要做的就是按照安装、启动工作程序和节拍,您可以安排任务。

task.py

from celery import shared_task

@shared_task
def sendScheduledEmail(email_to):
   #do your stuff

并且在您的 API POST 上安排:

sendScheduledEmail.apply_async([email_to],eta=datetime.datetime(2021,07,06,09,30))

我没有测试这个,所以如果你有任何错误,请告诉我

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。