首页 > 解决方案 > 如何在申请后立即自动向求职者发送电子邮件,odoo 14

问题描述

我有一个 cron 作业和电子邮件模板,我正在尝试编写一个 python 代码,以便在申请人提交申请并在 Odoo 14 中进入招聘的第一阶段后向新申请人发送确认电子邮件。如何访问拥有刚刚申请并触发 cron 作业在几分钟内将电子邮件发送给申请人?任何帮助将不胜感激。这是我的代码。

py.py 文件:


def job_app_acknowledgments(self):
    for rec in self:
        rec.partner_id = self.env["hr.applicant"].search(
            [("job_id", "=", job.id), ("stage_id", "=", job._get_first_stage().id)]
        )
        if rec.partner_id:
            ctx = {}
            ctx['email_to'] = rec.partner_id.email
            # ctx['email_from'] = self.env.user.user_id.email
            ctx['email_from'] = self.env.user.employee_id.work_email
            ctx['send_email'] = True
            ctx['partner_id'] = rec.partner_id.id
            template = self.env.ref('hr_recruitment_new.job_applicant_acknowledgment')
            template.with_context(ctx).send_mail(
                rec.id, force_send=True, raise_exception=False)

cron.xml


    <record id="job_applicant_acknowledgment" model="ir.cron">
               <field name="name">Job Applicant Acknowledgment Email</field>
               <field name="model_id" ref="hr_recruitment.model_hr_applicant"/>
               <field name="state">code</field>
               <field name="code">model.job_app_acknowledgments()</field>
               <field name="user_id" ref="base.user_root"/>
               <field name='interval_number'>1</field>
               <field name='interval_type'>minutes</field>
               <field name="numbercall">-1</field>
               <field name="doall" eval="False"/>
            </record>

标签: pythonodoo

解决方案


我找到了答案:email_sent 是一个布尔字段。cron 作业很好,然后添加您的电子邮件模板。

def job_app_acknowledgments(self):
    for rec in self:        
        if rec.partner_id and not email_sent:
            ctx = {}
            ctx['email_to'] = rec.partner_id.email
            # ctx['email_from'] = self.env.user.user_id.email
            ctx['email_from'] = self.env.user.employee_id.work_email
            ctx['send_email'] = True
            ctx['partner_id'] = rec.partner_id.id
            template = self.env.ref('hr_recruitment_new.job_applicant_acknowledgment')
            template.with_context(ctx).send_mail(
                rec.id, force_send=True, raise_exception=False)


推荐阅读