나는 이것을 작동 시키려고 노력했지만 더 좋은 방법이 있어야한다. 모든 입력을 환영한다.pyramid_mailer 및 apscheduler로 예정된 전자 메일 보내기
pyramid_mailer (.ini 파일에 저장된 설정)를 사용하여 Python 피라미드 앱에서 예정된 이메일을 보내려고하고 있으며 apscheduler가 일정을 설정하려고합니다.
또한 응용 프로그램이 다시 시작되면 작업을 다시 시작할 수 있도록 SQLAlchemyJobStore를 사용합니다.
jobstores = {
'default': SQLAlchemyJobStore(url='mysql://localhost/lgmim')
}
scheduler = BackgroundScheduler(jobstores=jobstores)
@view_config(route_name='start_email_schedule')
def start_email_schedule(request):
# add the job and start the scheduler
scheduler.add_job(send_scheduled_email, 'interval', [request], weeks=1)
scheduler.start()
return HTTPOk()
def send_scheduled_email(request):
# compile message and recipients
# send mail
send_mail(request, subject, recipients, message)
def send_mail(request, subject, recipients, body):
mailer = request.registry['mailer']
message = Message(subject=subject,
recipients=recipients,
body=body)
mailer.send_immediately(message, fail_silently=False)
이것은 지금까지 제가 얻은 것입니다. 요청을 피할 수 없기 때문에 아마도 오류가 발생했을 것입니다. 메일러를 얻을 수 pyramid.threadlocal.get_current_registry().settings
를 사용
PicklingError: Can't pickle <type 'function'>: attribute lookup __builtin__.function failed
처음 작동하지만 이후 오류가 발생합니다. 나는 그것을 어떤 경우에도 사용하지 말 것을 권고합니다.
그 밖의 무엇을 할 수 있습니까?
감사합니다, 이건 정말 도움이되었다. 귀하의 링크가 깨진 것 같습니다. – Niel
링크가 수정되었습니다. 브라우저 자동 완성에 물렸어. –