如何在 Odoo 12 中向多个用户(电子邮件地址)发送电子邮件模板

How to send an email template to multiple users (email addresses) in Odoo 12

当调度程序使用电子邮件中的自定义数据运行时,我想向 Odoo 12 中的多个用户发送电子邮件。我在 XML 文件中创建了我的电子邮件模板。另外,我有一个方法可以将我所有的电子邮件地址 returns 作为一个列表。我如何在 "email_to" 字段中遍历电子邮件模板中的此列表并获取所有电子邮件地址并将电子邮件发送给所有这些地址电子邮件?

以下是我的电子邮件模板:

<?xml version="1.0" encoding="utf-8"?>
<odoo>
    <data noupdate="1">
        <record id="repayment_due_date_reminder_email_template" model="mail.template">
            <field name="name">Repayment Due Date Reminder Email Template</field>
            <field name="email_from">admin@netlinks.af</field>
            <field name="subject">Repayment Due Date Reminder</field>
            <field name="email_to">${for email in object.get_groups_usesr_email():
                                        }</field>
            <field name="lang">${object.lang}</field>
            <field name="model_id" ref="hr_payroll_advance_salary.model_loan_request"/>
            <field name="body_html">
                <![CDATA[ 
                <p>The following loan installment is due for repayment:<br/>
                Loan Recepient: ${(object.employee_id.name)}<br/>
                Total Loan Amount: ${(object.loan_amount)} ${(object.currency)} <br/>
                Installment Due: ${(object.loan_amount)} ${(object.currency)} <br/>
                Repayment Date: ${(object.repayment_schedule_ids.repayment_date)} <br/>
                You can view the loan record here for further details </p>
                ]]> 
            </field>
        </record>
    </data>
</odoo>

我使用以下代码调用电子邮件模板:

template_rec = self.env.ref('hr_payroll_advance_salary.repayment_due_date_reminder_email_template')
template_rec.send_mail(loan.id, force_send=True)

这是 returns 发送电子邮件的方法:

@api.multi
    def get_groups_usesr_email(self):
        emails = []
        user_ids = self.get_users_from_groups('group_nl_finance_manager')
        emails = self.get_users_email('group_nl_finance_manager', user_ids)
        user_ids = self.get_users_from_groups('group_nl_ceo')
        new_emails = self.get_users_email('group_nl_ceo', user_ids)
        for email in new_emails:
            emails.append(email)
        return emails

我正在执行上述操作以便向两个不同组的所有用户发送电子邮件,但我不确定这种方式是否合适。是否可以做我想做的事,或者可以用其他方式完成?

您可以使用 mass_mailing(电子邮件营销 通过 Odoo S.A) 模块来做到这一点。

我使用以下代码在电子邮件上使用循环将电子邮件模板发送到所有电子邮件地址,在我的情况下效果很好。

all_eamils = loan.get_groups_usesr_email()
    for email in all_eamils:
        template_rec = self.env.ref('hr_payroll_advance_salary.repayment_due_date_reminder_email_template')
        template_rec.write({'email_to': email})
        template_rec.send_mail(loan.id, force_send=True)