Как отправить шаблон электронной почты нескольким пользователям (адресам электронной почты) в Odoo 12

Я хочу отправить электронное письмо нескольким пользователям в Odoo 12, когда планировщик работает с пользовательскими данными в электронной почте. Я создал свой шаблон электронной почты в XML-файле. Кроме того, у меня есть метод, который возвращает все мои адреса электронной почты в виде списка. Как я могу просмотреть этот список в шаблоне электронной почты в поле "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">[email protected]</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)

И это метод, который возвращает электронные письма:

@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

Я делаю вышеуказанные вещи для того, чтобы отправить электронное письмо всем пользователям двух разных групп, и я не уверен, подходит ли это или нет. Можно ли делать то, что я хочу, или это можно сделать другим способом?


person Ibrahim Rahimi    schedule 28.05.2019    source источник


Ответы (2)


Для этого вы можете использовать модуль mass_mailing (Электронный маркетинг от Odoo S.A).

person Saloua SAHNOUNE    schedule 28.05.2019

Я отправил шаблон электронной почты на все адреса электронной почты, используя цикл писем с приведенным ниже кодом, и в моем случае это отлично работает.

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)
person Ibrahim Rahimi    schedule 29.05.2019