如何在申请后立即自动向求职者发送电子邮件,odoo 14
How to sending emails automatically to Job Applicant immediately after applying, 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>
我找到了答案:
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)
我有一个 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>
我找到了答案: 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)