Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.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 如何在以下功能中使用电子邮件模板?_Python_Email_Openerp_Odoo 8 - Fatal编程技术网

Python 如何在以下功能中使用电子邮件模板?

Python 如何在以下功能中使用电子邮件模板?,python,email,openerp,odoo-8,Python,Email,Openerp,Odoo 8,我正在尝试使用以下代码发送邮件功能: 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 be

我正在尝试使用以下代码发送邮件功能:

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' : "abc@gmail.com",
                      '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

我想知道如何使用模板为多人发送邮件。有人对此有什么想法吗?

你可以用这种方法。为邮件添加新模板(如查看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">test@gmail.com</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> 

Danilla Ganchar,首先非常感谢你。为什么变量user.id出现在send_mail函数中?@ShravyaShetty我不知道,但我记得在其他模块中每次都使用id的记录。您可以检查以下内容:
/odoo/addons/rating/models/rating.py
第120行或
/odoo/addons/website\u forum/models/res\u users.py
第79行。我使用版本9。无论如何,这是工作。我在我的模块中使用了这个解决方案。希望这对您有所帮助。@Danilla Ganchar,您是否知道如何在我发布的上述代码中获取python代码。我只是想看看电子邮件template@ShravyaShetty如果我明白你的意思。。。在旧的API中,它必须是这样的:
def button\u confirm\u mom(self,cr,uid,ids,context=None):temp=self.pool.get('your\u module.event\u your\u ID\u mail\u template')
。是的,无论如何我都明白了。非常感谢您的回答@Danila Ganchar
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)