Мне наконец-то удалось отправить электронное письмо с помощью APSchedular.
Мои настройки в Apache Virtual host, чтобы разрешить несколько потоков (использую mod_wsgi)
WSGIDaemonProcess app threads=15 maximum-requests=10000
WSGIScriptAlias / /var/www/html/myapp.wsgi
WSGIProcessGroup app
WSGIApplicationGroup %{GLOBAL}
Затем в моем приложении я сначала импортирую фон BackgroundScheduler
from apscheduler.schedulers.background import BackgroundScheduler
Создайте свой планировщик с часовым поясом, но используйте все остальные настройки по умолчанию
scheduler = BackgroundScheduler(timezone='Africa/Nairobi')
Затем перед первым запросом я запускаю планировщик и добавляю задание send_reports
@app.before_first_request
def initialize():
scheduler.start()
scheduler.add_job(send_reports, 'cron', hour=10, minute=10, end_date='2055-05-30')
Отправка отчетов в виде PDF-файлов с использованием pdfkit и flask-email была другим вопросом, но суть его заключается в установке правильной версии wkhtmltopdf и наличии правильного пути env, а также в том, что вы передаете контекст приложения в flask-mail отправлять почту в фоновом потоке.
Таким образом, отчеты отправляются на указанные электронные письма каждый день в 1010 утра. Надеюсь, кто-то найдет это полезным