向特定组的多个用户发送邮件,odoo12

Sending mail to multiple users of specific group, odoo12

我有一个电子邮件模板,每当创建新记录时都会发送该模板。这封电子邮件只发送给一个人,因为我在 email_to 字段中只指定了一个电子邮件 ID。

我还为用户创建了一个自定义组。我想通过在创建新记录后迭代检查电子邮件 ID 是否存在来向用户组的所有用户发送电子邮件通知。如何从电子邮件模板的 email_to 字段中的用户组中获取用户的电子邮件 ID 并自动发送?

首先你像这样覆盖你的模型创建方法..

@api.model
def create(self, vals):
    res = super(ClassName, self).create(vals)
    template = self.env.ref('module_name.template_id')
    template.send_mail(res.id, force_send=True)
    return res

它将发送来自创建新记录的邮件。您可以在记录中定义 to_email 邮件模板..

在您的邮件模板中

<field name="email_to">${object.get_email_to()}</field>

python这样的方法

@api.model
def get_email_to(self):
    user_group = self.env.ref("res.group_res_user")
    email_list = [
        usr.partner_id.email for usr in user_group.users if usr.partner_id.email]
    return ",".join(email_list)

希望这能很好地满足您的要求..

先创建一个字段(字段名根据你自己改):

student_mail=fields.Char(compute="get_email_to")

在声明函数之后:

def get_email_to(self):
    mail_id= self.env['school.management'].search([])

    filter_mail = [i.email for i in mail_id if i.college_id]
    self.student_mail=",".join(filter_mail)
    result=",".join(filter_mail)
    self.student_mail=result.replace('"','')

在XML中:

<field name="email_to">${object.student_mail}</field>

在我的例子中,我根据大学 ID 筛选学生...