如何通过Odoo v8中的代码发送带模板的邮件?

for*_*vas 0 python python-2.7 odoo odoo-8

我正在尝试通过Python发送邮件(加载模板).

我在版本7中使用模型的功能执行send_mail了此操作email.template.现在,我希望它适用于版本8,但我无法管理它.

这不是关于SMTP服务器和模板的问题,因为如果我手动发送邮件,它就会正确地掌握它的命运.

它似乎没有进入函数send_mail(我在函数的第一行上面写了一个记录器信息消息,它永远不会出现).

这是我的代码:

return self.env['email.template'].send_mail(
   self.env.cr, self.env.uid, template.id, self.id, force_send=True,
   context=self.env.context)
Run Code Online (Sandbox Code Playgroud)

我还检查了函数需要template.idself.id参数和参数是否正确.但是没有错误,没有消息,它忽略了这个功能.我也试过没有cr,uidcontext,但相同的结果.

顺便说一句,send_mail函数有一个我以前从未见过的装饰器@api.cr_uid_id_context,其含义我不知道.

有人可以帮帮我吗?

And*_*més 5

当使用新的API(self.env而不是self.pool)时,您不仅不再需要传递cr/ uid/ context参数,因为您通常不会传递id(s)任何一个; 相反,你browse()得到一个对象,然后调用它上面的方法.

尝试:

return template.send_mail(self.id, force_send=True)
Run Code Online (Sandbox Code Playgroud)