我想安排一个选定的日期发送电子邮件.我如何在DRF中做到这一点



我想将收件人的电子邮件地址和日程日期作为输入,并将邮件发送到日程日期。我在视图中有以下几行代码。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。你所需要做的就是按照安装,启动一个工人和节拍,这样你就可以安排任务了。

任务.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))

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

最新更新