Логическая ловушка на сообщениях электронной почты, синхронизированных с сервером IMAP

Я пытаюсь добавить логический хук для писем, синхронизированных с почтовым сервером IMAP.
В конце я хочу вызвать ловушку, когда новая почта синхронизируется, и проверить почту отправителей, если она сохранена в одной из учетных записей.

Проблема заключается в том, что синхронизированные письма не сохраняются (по крайней мере, не в модуле InboundMail или Emails), поэтому после / 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");
}
}

Это возможно даже с помощью логических хуков?

РЕДАКТИРОВАТЬ: добавлен код

0

Решение

Нет необходимости в логике или любом другом пользовательском коде. Sugar / SuiteCRM использует задание планировщика для получения электронной почты с сервера IMAP. Вы можете проверить функцию задания планировщика (function :: pollMonitoredInboxes), которая выбирает электронные письма. Это содержит код, который используется для получения электронной почты. отслеживать обратный код, и вы найдете все, что вы хотите.

1

Другие решения

Я думаю, что это возможно, если после / before_save не срабатывает, попробуйте некоторые аналогичные логические хуки. Ниже приведены некоторые логические приемы, которые, я думаю, могут помочь.

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

Прокомментируйте, если вы хотите больше деталей, например, как использовать логические хуки e.t.c.

2

Какую версию сахара вы используете?

Например, вы можете сгенерировать ловушку after_save в модуле E-mail вместо inboundEmail

Было бы так:

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

Сделайте это и посмотрите, сработает ли электронная почта!
Другой возможностью было бы использовать after_relationship_add, потому что обычно электронная почта связана с каким-либо лидерством, учетной записью или контактом. попытайтесь создать хук в модуле, с которым связано ваше электронное письмо, и сгенерируйте оттуда операцию

Последняя возможность (я не рекомендую это) — создать в вашей базе данных триггер, когда данные попадают в таблицу, выполнить проверку и предпринять некоторые действия.

2
По вопросам рекламы [email protected]