Python 通过发送电子邮件。googleappengine中的延迟库
我正在尝试使用发送邮件,正常使用时,如:Python 通过发送电子邮件。googleappengine中的延迟库,python,email,google-app-engine,google-cloud-platform,deferred,Python,Email,Google App Engine,Google Cloud Platform,Deferred,我正在尝试使用发送邮件,正常使用时,如: message = mail.EmailMessage() message.sender = ... message.to = ... message.subject = ... message.send() 工作很好;我收到了预期的电子邮件 但是,我正在尝试使用以下命令将此email.send()事件添加到推送队列: 我可以看到它已成功添加到管理员界面上的推送队列中,但我从未实际收到电子邮件或任何类型的失败通知/反弹消息 我已经看到了,但我不认为
message = mail.EmailMessage()
message.sender = ...
message.to = ...
message.subject = ...
message.send()
工作很好;我收到了预期的电子邮件
但是,我正在尝试使用以下命令将此email.send()
事件添加到推送队列:
我可以看到它已成功添加到管理员界面上的推送队列中,但我从未实际收到电子邮件或任何类型的失败通知/反弹消息
我已经看到了,但我不认为我在这里遇到了这些吗?
延迟。延迟将函数和要传递给该函数的参数作为参数。执行此操作时:
deferred.defer(message.send, _countdown=10)
您传递函数message.send
,但是message
对象中的所有数据都会丢失,因此您不再拥有任何数据
相反,将所有逻辑移到您的send\u email
功能中:
def send_email(from, to, subject, body):
message = mail.EmailMessage()
message.sender = ...
message.to = ...
message.subject = ...
message.send()
// elsewhere
deferred.defer(send_email, from, to, subject, body, _countdown=10)
您好,谢谢您的回答,但这不会改变我的结果-任务已添加到推送队列,但即使我手动执行,我也不会收到电子邮件。电子邮件不会随开发服务器一起发送,因此请确保您在生产环境中尝试。同时检查您的日志。使用dev服务器,您可以在应用程序日志中看到一些消息,而不是实际发送的电子邮件。
def send_email(from, to, subject, body):
message = mail.EmailMessage()
message.sender = ...
message.to = ...
message.subject = ...
message.send()
// elsewhere
deferred.defer(send_email, from, to, subject, body, _countdown=10)