[Python] How to sending emails automatically to Job Applicant immediately after applying, odoo...

Discussão em 'Python' iniciado por Stack, Abril 26, 2025.

  1. Stack

    Stack Membro Participativo

    I have a cron job and email template and I am trying to write a python code to send acknowledgement emails to new applicants once the application is submitted by applicants and hit the first stage of Recruitment in Odoo 14. How can I access the applicant that has just applied and trigger the cron job to send the email to the applicant in minutes? Any help will be highly appreciated. Here's my code.

    Py.py file:


    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>

    Continue reading...

Compartilhe esta Página