Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 通过发送电子邮件。googleappengine中的延迟库_Python_Email_Google App Engine_Google Cloud Platform_Deferred - Fatal编程技术网

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)