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

问题描述 投票:0回答:3

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

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

我想自动执行此预定的电子邮件发送。我想用odoo 10做这件事。这可能在odoo 10吗?如果是这样,我该如何以及从何处开始?

odoo-10 erp
3个回答
2
投票

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

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

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)

0
投票

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

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

$ {}用于jinja模板引擎

© www.soinside.com 2019 - 2024. All rights reserved.