johnnyq
8ee780566e
Cleanup Expense Code in post blocks and remove single use function since stripe payments get reconciled during nightly cron
2026-07-22 17:06:10 -04:00
johnnyq
08334b22c3
Add Stripe fee reconciliation to cron
...
Balance transactions aren't always attached when a payment completes,
so the fee expense can be skipped at payment time. Daily cron pass now
finds recent Stripe payments with no matching fee expense and records
the actual fee once available. Dedupes by expense reference prefix,
30-day lookback.
2026-07-22 16:47:28 -04:00
johnnyq
66b38b7f19
Get Expense from Stripe instead of Static Entry
2026-07-22 16:07:39 -04:00
johnnyq
21a23e79b0
Replace Function getSSL() with getSslCertificate()
2026-07-14 17:54:31 -04:00
johnnyq
52b5063066
Replace Function getDomainRecords() with getDnsRecords()
2026-07-14 17:53:16 -04:00
johnnyq
9d540f4bfe
Replace Function customAction() with triggerCustomAction()
2026-07-14 17:43:55 -04:00
johnnyq
f1836c70cd
Replace Function logAction() with logAudit()
2026-07-14 17:35:23 -04:00
johnnyq
29a0b3ead8
Replace Function fetchUpdates() with checkForUpdates()
2026-07-14 17:31:54 -04:00
johnnyq
b57ddc0e5c
Replace Function sanitizeInput() with just escapeSql() and update all instances throughout
2026-07-14 17:17:50 -04:00
johnnyq
8da3a107fb
Rename plugins to libs and update all file references
2026-07-10 13:24:20 -04:00
johnnyq
ae5c9fe8ec
Mail Parser: Add logic when creating ITFlow folder to determine if the namespace is INBOX. or can be created in root directory. Fixes issue with CPanel Dovecot Maildir++ configuration where their namespace is just INBOX
2026-07-08 15:58:00 -04:00
johnnyq
171a0d38f8
Mail Parser: Completely remove Webklex IMAP and all dependcies
2026-06-24 13:39:07 -04:00
johnnyq
6e7d2b2d6a
Invoice Late Overdue notices shows correct balance when late fees are attached and if partial invoice was paid
2026-06-24 13:07:52 -04:00
johnnyq
a819dff19a
Mail: Update mail configuration check to use smtp_provider instead of smtp_host as host is blank upon using oath2
2026-06-24 12:47:41 -04:00
johnnyq
b1a5b34725
Do not send an inapp alert on successful cron execution, keep it in logging only
2026-06-23 18:22:20 -04:00
johnnyq
2204bd52f4
Rewrite email parser using ImapEngine, harden processing loop
...
Replace webklex/php-imap with directorytree/imapengine in the ticket
email parser. ImapEngine is pure PHP over sockets.
Parser improvements:
- Wrap per-message processing in try/catch so one malformed email
can't abort the run; failures are flagged and logged with UID
- Query unseen + unflagged so previously-failed (flagged) messages
are no longer re-processed on every cron run
- Skip vacation/auto-responder emails (RFC 3834) to prevent mail
loops with the ticket auto-reply
- Cap messages per run (50) and attachment size (15MB); inline
images over 2MB are stored as attachments instead of base64-embedded
in ticket details
- Atomic lock file creation
- preg_quote() the ticket prefix in subject matching
- Dedupe CC watchers and exclude the sender
- Map webklex 'tls' encryption setting to STARTTLS for compatibility
NDR/DSN parsing now walks MIME parts via the underlying
zbateson parser instead of relying on attachment extraction.
2026-06-12 16:56:39 -04:00
wrongecho
163581cbcd
Expire all PW reset tokens nightly with cron
2026-04-27 13:36:39 +01:00
johnnyq
e9c3ee4661
Shared Items via secure link: Do not delete shared items that have not been viewed before cron runs
2026-04-24 11:40:38 -04:00
johnnyq
6d1b654d0c
Invoice: Do not apply late fee on first overdue reminder (day 1)
2026-03-20 17:44:33 -04:00
johnnyq
6122efc870
Updated all Queries related to invoice items to reflect their new tables quote, invoice, recurring invoice items
2026-03-07 19:35:44 -05:00
johnnyq
92fba49a91
Revert "Add new optional beta email parser thats based on ImapEngine instead of Webklex"
...
This reverts commit 9cb1ff7330 .
2026-02-26 16:44:49 -05:00
johnnyq
ac4bb32081
Revert "Beta Mail Parser Add inline images as attachments keeps the DB clean"
...
This reverts commit 87fd23f443 .
2026-02-26 16:44:39 -05:00
johnnyq
7927312f4f
Revert "Revert "Beta Mail Parser Add inline images as attachments keeps the DB clean""
...
This reverts commit 04a74b5a34 .
2026-02-26 16:41:50 -05:00
johnnyq
04a74b5a34
Revert "Beta Mail Parser Add inline images as attachments keeps the DB clean"
...
This reverts commit 87fd23f443 .
2026-02-26 16:41:03 -05:00
johnnyq
87fd23f443
Beta Mail Parser Add inline images as attachments keeps the DB clean
2026-02-26 16:30:29 -05:00
johnnyq
9cb1ff7330
Add new optional beta email parser thats based on ImapEngine instead of Webklex
2026-02-26 16:11:49 -05:00
wrongecho
1ba19cc249
New Ticket Parsing - Anyone CC'ed onto the original email that created the ticket is added as a ticket watcher
2026-02-26 12:49:32 +00:00
johnnyq
ef7794c411
Added non payment invoice reminder / Late fee if enabled after 1 day an invoice is overdue. currently it was jumping right to 30,60,90... now its 1,30,90...
2026-02-19 12:20:26 -05:00
johnnyq
2ca8112daf
Revert Git change test to ticket_email_parser.php
2026-02-06 15:14:37 -05:00
johnnyq
546f10bc82
Testing Git changes on ticket_email_parser.php
2026-02-06 15:13:54 -05:00
cs2000
fc33312e79
SonarCube Suggestion
...
Rename multiple functions to conform to project naming rules (^[a-z][a-zA-Z0-9]*$). This is a non-functional refactor for style/CI compliance and consistency.
2026-02-05 10:15:52 +00:00
cs2000
10d1a902d9
Changes for M365 oAuth now using latest dev code
...
My bad, my changes were made previously using my installed version and not the latest changes in the dev branch, i have pulled the dev branch and merged my changes with the latest codebase.
2026-02-05 09:37:22 +00:00
cs2000
2cca4f2f0e
Changes for M365 oAuth
...
- Added null-safe guard around folder path logging during message move failure to prevent property_exists() fatal when folder object is null.
2026-02-04 13:26:52 +00:00
cs2000
f3f9d0dd71
Changes for M365 oAuth
...
- Added OAuth token lifecycle helpers (expiry check, refresh, persistence).
- Updated SMTP XOAUTH2 send path to automatically refresh expired/missing access tokens for Microsoft/Google providers before sending queued mail.
2026-02-04 13:25:32 +00:00
wrongecho
07df657848
Bugfix: newline char showing in parsed emails
2026-01-27 17:25:53 +00:00
johnnyq
bd8bf026f0
Allow svg email attachemment for mail parser
2026-01-23 11:24:26 -05:00
johnnyq
e0f7460e08
If not client_id then do not include &client_id= in ticket uris as this would cause ticket viewing to break if client_id is 0.
2026-01-19 17:01:38 -05:00
johnnyq
ae1d71dcd7
append client_id to the uri for agent ticket links so that the when clicked will take them to the client section and show client header along with the bread crumbs link of client tickets
2026-01-19 16:24:31 -05:00
wrongecho
e7f6f8a4c7
Mail Parser - NDR Parsing
2026-01-15 17:35:13 +00:00
wrongecho
a398ac7a8d
Mail Parser - Support flowed text
2026-01-15 11:54:37 +00:00
wrongecho
7e7909cec1
Mail Parser - Do not automatically send new ticket notifications to noreply/donotreply addresses
2026-01-15 10:38:25 +00:00
johnnyq
0a30300bde
replace all instances of mysqli_fetch_array with mysqli_fetch_assoc for better performance and memory usage
2026-01-14 17:30:23 -05:00
johnnyq
a79ce23ae5
Fix randomString() to generate cryptographically secure URL-safe tokens, reduced url keys to 32 Characters for performance and easy copy and paste and compatibility while still mainitaining ubreakable cryptographic keys
2025-12-18 14:24:53 -05:00
wrongecho
7c83ba15b9
Mail queue - minor comment syntax error
2025-12-03 15:43:55 +00:00
wrongecho
10bfbed4bb
Mail queue - introduce a --no-mx-validation flag to bypass recipient domain MX validation
2025-12-03 15:30:26 +00:00
johnnyq
99e2487d2b
Fix dupe race condition with ticket, invoice, quote, project, recurring ticket numbering when being created in parallel Atomically update and get the next ticket number in one SQL query everywhere.
2025-11-28 14:14:46 -05:00
johnnyq
185ea7d6ac
Fix 'Email from at' On tickets that come from emails, was cuasing dup html head body tags causing htmlPurifier to strip it in ticket viewing, so we removed html body and head tags also remove orginal reply on reply ticket emails this removed ##- Please type your reply above this line -## and anything after it. Also removed the custom CSS that was embedded for all email sent out from ITFlow
2025-11-22 17:40:44 -05:00
wrongecho
b991f787a2
Introduce subject-based automatic ticket merging/reply detection where e-mail is sent from a known contact or domain and the subject is a 95% match for a ticket opened in the last 7 days for that client
2025-11-18 13:08:02 +00:00
wrongecho
891f71006b
Mail queue - Recipient domain MX validation before sending
2025-11-06 16:58:18 +00:00
johnnyq
6d15640ae4
[Feature] Recurring Ticket - Add Three Day and Biweekly to the Frequency options
2025-10-29 18:15:21 -04:00