Вы должны быть в состоянии сделать это в рамках вашего представления в Django, и вам действительно не нужно запускать внешний cron в вашей базе данных. Для пояснения: хотите ли вы, чтобы электронное письмо отправлялось, когда сообщение обрабатывается в представлении, или другое действие вызывает создание сообщений, а затем вы хотите, чтобы сообщение было отправлено.
Для отправки самой электронной почты у вас может быть что-то вроде:
from django.core.mail import EmailMultiAlternatives
from django.template.loader import render_to_string
from django.utils.html import strip_tags
import logging
logging.basicConfig(level=logging.DEBUG)
log = logging.getLogger(__name__)
def send_message(to):
log.error('starting send email')
subject, from_email = 'Message Confirmation', 'youraddress@gmail.com'
html_content = render_to_string('emails/message.html', {'email': str(to)})
# this strips the html, so people will have the text as well.
text_content = strip_tags(html_content)
# create the email, and attach the HTML version as well.
msg = EmailMultiAlternatives(subject, text_content, from_email, [to])
msg.attach_alternative(html_content, "text/html")
msg.send()
С вашей точки зрения, вы можете немедленно отправить это письмо с помощью:
send_message(user_email)
Или вы можете проверить дату сообщения и, если время является определенным значением, отправить.