Hello,
I'm troubleshooting a new clean installation of osTicket v1.18.4 with the OAuth2 Client 0.6 plugin and a Microsoft 365 shared mailbox.
Environment
osTicket: 1.18.4
OAuth2 Client Plugin: 0.6
IIS 10
PHP 8.3.35
MariaDB 11.8
Microsoft 365
OAuth2 configured with Microsoft Entra ID
Mailbox Configuration
Shared Mailbox
soporte.sistemas@*********
Exchange confirms:
Get-Mailbox soporte.sistemas@******* |
Select Name, RecipientTypeDetails
RecipientTypeDetails : SharedMailbox
OAuth User
OSTicket@*******.onmicrosoft.com
Permissions assigned:
FullAccess
SendAs
Verified:
Get-EXOMailboxPermission soporte.sistemas@********
User:
OSTicket@****.onmicrosoft.com
AccessRights:
FullAccess
Get-RecipientPermission soporte.sistemas@*****
Trustee:
OSTicket@*********.onmicrosoft.com
AccessRights:
SendAs
OAuth Status
OAuth authorization completes successfully.
Resource owner stored in database:
OSTicket@***********.onmicrosoft.com
Database contains:
access_token
refresh_token
token_type = Bearer
resource_owner_email = OSTicket@*********.onmicrosoft.com
Token tab shows:
OAuth2 Authorization Successful
Email Account Configuration
Host : outlook.office365.com
Port : 993
Protocol : IMAP
Folder : INBOX
OAuth2 : Microsoft
Active : 1
FetchFreq : 1
Current database record:
SQL
SELECT *
FROM ost_email_account\G
Result:
active = 1
auth_bk = oauth2:msmail
auth_id = 6
host = outlook.office365.com
port = 993
protocol = IMAP
folder = INBOX
fetchfreq = 1
fetchmax = 30
num_errors = 0
last_error_msg = NULL
last_error = 2026-10-01 15:18:33
last_activity = NULL
Scheduler / Cron
Verified:
enable_auto_cron = 1
enable_mail_polling = 1
Database:
SQL
SELECT *
FROM ost_config
WHERE key IN (
'enable_auto_cron',
'enable_mail_polling'
);
Result:
enable_auto_cron = 1
enable_mail_polling = 1
Session records show:
lastcroncall
being updated continuously, so AutoCron appears to be running.
System Logs
System log level:
DEBUG
Contents of:
Admin → Logs
only show SMTP errors from localhost:25.
There are no IMAP errors, no OAuth errors, and no Mail Fetcher errors.
Database:
SQL
SELECT * FROM ost_syslog;
contains nothing related to mailbox retrieval.
Most Important Symptom
Mail arrives correctly in:
soporte.sistemas@*******
Inbox contains messages.
However:
last_activity = NULL
never changes.
No mail is imported.
No tickets are created.
No errors are logged.
It looks as if the Mail Fetcher never attempts to process this mailbox.
Additional Observation
When configuring OAuth for the Shared Mailbox:
Strict Matching
was repeatedly re-enabled after saving.
At one point authorization produced:
Strict Mode: Expecting Authorization for
soporte.sistemas@**********
not
OSTicket@**********.onmicrosoft.com
After recreating both:
Email Account
OAuth Authorization Instance
the OAuth authorization now completes successfully and tokens are stored correctly.
Nevertheless:
last_activity = NULL
remains unchanged.
Question
Has anyone successfully configured:
osTicket 1.18.4
OAuth2 Client 0.6
Microsoft 365 Shared Mailbox
OAuth delegated through a licensed user
and seen behavior where:
OAuth succeeds
Tokens exist
No errors occur
But last_activity remains NULL
and Mail Fetcher never processes the mailbox?
Any guidance would be greatly appreciated.
Thanks!