Как запланировать электронное письмо с помощью twilio sendgrid в django?

В настоящее время я создаю приложение, которое содержит отправку электронной почты нескольким пользователям, что я могу сделать, но я хочу добавить функциональность, которая планирует электронное письмо, например, я использую метод sent_at, как вы можете видеть ниже:-

extra_headers = {'X-SMTPAPI': json.dumps({'send_at': FinalScheduleTime})}

Я также пробовал SendAt, но это тоже не работает.

Это официальный блог компании Twilio на тему Using Twilio SendGrid To Send Emails from Python Django Applications - https://www.twilio.com/blog/scheduled-emails-python-flask-twilio-sendgrid

Также вот, официальная документация

Здесь FinalScheduleTime является объектом datetime. Согласно документации, sendgrip api принимает временную метку UNIX. Вы можете проверить это здесь

Для преобразования объекта datetime в метку времени unix, вы можете использовать модуль time в python.

scheduleTime = int(time.mktime(FinalScheduleTime.timetuple()))

Также замените message.extra_headers на message.send_at.

Следовательно, ваш окончательный код будет выглядеть так:

import json
import time
from sendgrid import SendGridAPIClient
from django.conf import settings

message = Mail(from_email=settings.EMAIL_FROM,
               to_emails=selectedphone,
               subject=subject,
               html_content=editor)


scheduleTime = int(time.mktime(FinalScheduleTime.timetuple()))
message.send_at = scheduleTime

sg = SendGridAPIClient(settings.EMAIL_API_CLIENT)
response = sg.send(message)
if response.status_code == 202:
     emailstatus = "Accepted"
elif .....
else.....
Вернуться на верх