Как решить проблему с расписанием в Django send_mail?
Я использую Pythonanywhere (PA) и хочу использовать планировщик задач PA для отправки электронных писем по расписанию. Я создал новый файл в папке app под названием: weeklyemailmm.py. Настройки электронной почты в файле setting.py работают с другими настройками электронной почты на моем сайте. Что я делаю не так?
Я использую код ниже:
from django.core.mail import send_mail
import datetime
from django.conf import settings
settings.configure(settings, DEBUG=True)
today = datetime.date.today()
weekday = today.weekday()
subject = 'New weekly email'
message = 'Hi there!'
if (weekday == 2):
try:
send_mail(
'Subject here',
'Here is the message.',
'from@gmail.com',
['to@gmail.com'],
fail_silently=False,
)
print('It is Wednesday, email sent')
except:
print('It is not Wednesday')
else:
print('Email does not sent')
На этом пути я всегда получаю It is not Wednesday.
Если я удалю часть try-except и сделаю аутдент, то получится:
RecursionError: maximum recursion depth exceeded while calling a Python object
Если я удалю settings.configure(settings, DEBUG=True), что может быть неправильно, то будет написано:
django.core.exceptions.ImproperlyConfigured: Requested setting EMAIL_BACKEND, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.
Использование EmailMessage :
from django.core.mail import EmailMessage
today = datetime.date.today()
weekday = today.weekday()
subject = 'New weekly email'
message = 'Hi there!'
if (weekday == 2):
try:
msg = EmailMessage(subject, message, 'from@gmail.com',
['to@gmail.com'])
msg.send()
print('It is Wednesday, email sent')
except:
print('It is not Wednesday')
else:
print('Email does not sent')