2016-01-04 37 views
1

我尝试使用下面的代码来发送邮件功能:如何在以下功能中使用电子邮件模板?

def button_confirm_mom(self,cr,uid,ids,context=None): 
     sobj = self.browse(cr, uid, ids) 
     msg_pool = self.pool.get('mail.mail') 
     cc_text = '' 
     msg_vals = { 
         'subject' : "MoM has been created", 

         'email_from' : "[email protected]", 
         'reply_to' : False, 
         'state'  : 'outgoing', 
         'model'  : False, 
         'res_id'  : False, 
         'auto_delete' : False, 
      } 


     if sobj.matp: 
      for cc_obj in sobj.matp: 
       if cc_obj.empname.work_email: 
        cc_text += cc_obj.empname.work_email + ',' 

     if sobj.newa: 
      for cc_obj1 in sobj.newa: 
       if cc_obj1.empname.work_email: 
        cc_text += cc_obj1.empname.work_email + ',' 
      msg_vals['email_cc'] = cc_text 
     self.pool.get('mail.mail').create(cr,uid,msg_vals) 
     return True 

我想知道我可以使用模板和发送邮件多个人。任何人都有这个想法吗?

回答

1

您可以使用这种方式。为邮件添加新模板(如查看xml文件)。例如:

<?xml version="1.0"?> 
<openerp> 
    <data noupdate="1"> 
     <record id="event_YOUR_ID_mail_template" model="mail.template"> 
      <field name="name">Name of template</field> 
      <!-- for example model - res.users --> 
      <field name="model_id" ref="your_module.model_res_users"/> 
      <field name="email_from">[email protected]</field> 
      <field name="email_to" >${object.email|safe}</field> 
      <field name="lang"></field> 
      <field name="subject">Your subject</field> 
      <field name="auto_delete" eval="True"/> 
      <field name="body_html"><![CDATA[Message of mail. <p>You can use here ${object.name} or any fields of object,</p> ]]></field> 
     </record> 
    </data> 
</openerp> 

安装\更新模块后,您可以找到(编辑)的模板这里:(顶部菜单)设置 - >(左菜单)电子邮件 - >模板(必须使用开发模式看到这个菜单项)。

我们如何利用这个模板在Python代码:

temp = self.env.ref('your_module.event_YOUR_ID_mail_template') 
if temp: 
    # example: user - instance of res.users 
    temp.sudo().with_context().send_mail(user.id, force_send=True) 
+0

Danilla Ganchar,首先非常感谢你。为什么变量user.id存在于send_mail函数中? –

+0

@ShravyaShetty我不知道,但我记得在其他模块每次使用** ID **的记录。你可以检查这个:'/ odoo/addons/rating/models/rating.py' line ** 120 **或'/ odoo/addons/website_forum/models/res_users.py' line ** 79 **。我使用版本9.无论如何,这是工作。我在模块中使用了这个解决方案。希望这对你有所帮助。 –

+0

Danilla Ganchar,是它的工作 –