从 IMAP 服务器同步的电子邮件上的逻辑挂钩

Logic Hook on Emails synced from IMAP Server

我正在尝试为从 IMAP 邮件服务器同步的电子邮件添加逻辑挂钩。 最后,我想在同步新邮件时触发挂钩,并检查发件人邮件是否保存在其中一个帐户中。

问题是同步邮件不会被保存(至少在 InboundMail 或电子邮件模块中不会)所以 after/before_save 不会触发。

这是我的钩子 logic_hooks.php:

$hook_array['after_save'][] = Array(1, 'Create Lead', 'custom/modules/InboundEmail/LeadLogicHook.php', 'LeadLogicHook', 'handleLead');

它在 InboundEmail 和电子邮件模块中不起作用。

LeadLogicHook:

<?php
if(!defined('sugarEntry') || !sugarEntry) die('Not A Valid Entry Point');

class LeadLogicHook 
{
    function handleLead($bean, $event, $arguments) 
    {
        _ppl("Test");
    }
}

这甚至可以使用逻辑挂钩吗?

编辑:添加了一些代码

我认为这是可能的,如果 after/before_save 没有触发然后尝试一些类似的逻辑挂钩。以下是我认为可以提供帮助的一些逻辑挂钩。

  • before_retrieve
  • after_retrieve
  • before_restore
  • after_restore
  • server_roundtrip
  • after_session_start
  • after_entry_point

如果您想了解更多详细信息,例如如何使用逻辑挂钩,请发表评论e.t.c。

您使用的是什么版本的糖?

例如,您可以在电子邮件模块中生成一个 after_save 挂钩,而不是 inboundEmail

会是这样的:

$hook_array ['after_save'] [] = Array (1,'Create Lead','custom/modules/Emails/LeadLogicHook.php','LeadLogicHook','handleLead');

执行此操作,看看电子邮件是否触发! 另一种可能性是使用 after_relationship_add,因为电子邮件通常与某些潜在客户、客户或联系人相关联。尝试在您的电子邮件关联的模块中创建一个挂钩,并从那里生成操作

最后一种可能性(我不建议这样做)是在数据进入 table 时在您的数据库中创建一个触发器,执行检查并采取一些措施

无需逻辑挂钩或任何其他自定义代码。 Sugar/SuiteCRM 使用调度程序作业从 IMAP 服务器获取电子邮件。您可以检查获取电子邮件的调度程序作业函数 (function::pollMonitoredInboxes)。包含用于电子邮件提取的代码。回溯代码,你会找到你想要的一切。