如何从odoo 10发送预定的电子邮件?

时间:2017-09-19 08:05:08

标签: odoo-10 erp

我们有一个wordpress网站,允许用户通过提供他们的电子邮件地址下载软件安装程序进行试用。

下载后,我们会从wordpress网站收到电子邮件通知。因此,在接下来的几周内,我们将手动向下载软件的人发送电子邮件(包含教程和有用信息)。

我想自动执行此预定电子邮件发送。 我正在考虑使用odoo 10来做这件事。 在odoo 10中这可能吗? 如果是这样,我该如何以及从哪里开始?

3 个答案:

答案 0 :(得分:2)

是的,有可能在Odoo。您需要按照以下步骤操作。

  1. 在Odoo中创建电子邮件模板
  2. 使用python函数
  3. 创建调度程序(cron作业)
  4. 调用电子邮件模板并根据时间间隔从Python函数触发电子邮件

答案 1 :(得分:2)

创建计划程序。这将创建一个调度程序视图。你可以在设置下看到这个 - >自动化 - >预定的行动

        <record id="ir_send_mail_cron_scheduler_action" model="ir.cron">
            <field name="name">Followup Mail scheduler</field>
            <field name="user_id" ref="base.user_root"/>
            <field name="interval_number">1</field>
            <field name="interval_type">days</field>
            <field name="numbercall">-1</field>
            <field eval="False" name="doall"/>
            <field eval="'crm.lead'" name="model"/>
            <field eval="'send_followup_mail'" name="function"/>
        </record>

crm.lead对象中,您需要创建一个可以从中调用模板的函数。在此之前,您有一个one2many字段,其中附有您的电子邮件模板,以便您可以从中获取电子邮件模板。

@api.multi
def send_followup_mail(self):
    # write your logic to find the time intervals(day 1, day 2, week)
    # based on the time interval trigger the mails.
    # use a loop to get the mail template id from the one2many
    mail_template = self.env['mail.template'].browse(template_id)
    mail_template.write({'email_to': self.email})

    #this will trigger the mail
    if mail_template:
       mail_template.send_mail(self.id, force_send=True, raise_exception=True)

答案 2 :(得分:0)

创建邮件模板时,它还具有一个名为“ scheduled_date”的字符字段,您可以在其中添加python代码,例如 ${(datetime.datetime.now() + relativedelta(days=3)).strftime('%Y-%m-%d %H:%M')}

这意味着从此模板创建的电子邮件将在3天后发送。

$ {}用于Jinja模板引擎