Как запланировать электронное письмо с помощью 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.....