3include_once
'./Services/Mail/classes/class.ilMailCronOrphanedMailsNotificationCollectionObj.php';
4include_once
'./Services/Mail/classes/class.ilMailCronOrphanedMailsFolderObject.php';
5include_once
'./Services/Mail/classes/class.ilMailCronOrphanedMailsFolderMailObject.php';
34 $this->db =
$DIC->database();
35 $this->setting =
$DIC->settings();
47 $mail_notify_orphaned = (int) $this->setting->get(
'mail_notify_orphaned');
48 $mail_threshold = (int) $this->setting->get(
'mail_threshold');
50 if ($mail_threshold > $mail_notify_orphaned) {
51 $notify_days_before = $mail_threshold - $mail_notify_orphaned;
53 $notify_days_before = 1;
56 $ts_notify = strtotime(
"- " . $notify_days_before .
" days");
57 $ts_for_notification = date(
'Y-m-d', $ts_notify) .
' 23:59:59';
59 $types = array(
'timestamp');
60 $data = array($ts_for_notification);
62 $notification_query =
"
63 SELECT m.mail_id, m.user_id, m.folder_id, m.send_time, m.m_subject, mdata.title
65 LEFT JOIN mail_obj_data mdata ON mdata.obj_id = m.folder_id
66 LEFT JOIN mail_cron_orphaned mco ON mco.mail_id = m.mail_id
67 WHERE mco.mail_id IS NULL AND m.send_time <= %s
70 if ((
int) $this->setting->get(
'mail_only_inbox_trash') > 0) {
71 $notification_query .=
" AND ((mdata.m_type = %s OR mdata.m_type = %s) OR mdata.obj_id IS NULL)";
72 $types = array(
'timestamp',
'text',
'text');
73 $data = array($ts_for_notification,
'inbox',
'trash');
76 $notification_query .=
" ORDER BY m.user_id, m.folder_id, m.mail_id";
78 $collection_obj =
null;
80 $res = $this->db->queryF($notification_query, $types,
$data);
82 while ($row = $this->db->fetchAssoc(
$res)) {
83 if (
$i > 0 &&
$i % self::PING_THRESHOLD === 0) {
89 $collection_obj =
null;
92 if ($collection_obj ===
null) {
98 $folder_obj = $collection_obj->getFolderObjectById($row[
'folder_id']);
101 $folder_obj->setFolderTitle($row[
'title']);
102 $collection_obj->addFolderObject($folder_obj);
106 $folder_obj->addMailObject($orphaned_mail_obj);
116 $this->collection[$collection_obj->
getUserId()] = $collection_obj;
125 if (isset($this->collection[$user_id])) {
An exception for terminatinating execution or to throw for unit testing.
ilMailCronOrphanedMailsFolderMailObject
ilMailCronOrphanedMailsFolderObject
ilMailCronOrphanedMailsNotificationCollectionObj
ilMailCronOrphanedMailsNotificationCollector
addCollectionObject(ilMailCronOrphanedMailsNotificationCollectionObj $collection_obj)
existsCollectionObjForUserId($user_id)
__construct(ilMailCronOrphanedMails $job)
foreach($_POST as $key=> $value) $res