Chilkat v11.3.0 Release Notes

Pinned December 16, 2025

  The main features of this release focus on Chilkat’s Ai class, enabling interactive AI response streaming directly into embedded desktop application browsers. It supports Azure, custom base URLs for OpenAI-compatible providers, and local providers like Ollama. ✨ New Features Ai Real-Time Streaming AI Responses to Embedded Browsers in Desktop Apps — Stream AI responses […]

Chilkat v11.2.0 Release Notes

Pinned November 3, 2025

Previous Version: Chilkat v11.1.0 Release Notes The main addition in v11.2.0 is the Chilkat.Ai class, and the Chilkat.StringBuilder.MarkdownToHtml method. Ai: The Chilkat AI class provides a unified API for interacting with different AI providers: OpenAI, Google, Claude, xAI, Perplexity, and DeepSeek. It provides functionality for conversation management, multimodal inputs, and streaming mode. Markdown to HTML […]

Semantic Versioning Starting with Chilkat 10.0.0

Pinned September 26, 2024

Starting with the v10.0.0 release (end of September 2024), Chilkat moves to standard semantic versioning.   Prior to this release, for various technical reasons, Chilkat was stuck with versions 9.5.0.xx, where only xx changed. For this first leap to semantic versioning, where the major version changes to 10 (from 9), there are no backward incompatible changes.  […]

Office365 – 451 4.7.0 Temporary server error. Please try again later. PRX5

May 3, 2024 in Office365

A Chilkat user is getting this error response from smtp.office365.com. He successfully got his OAuth2 access token, but then when trying to send the email, the Office365 server responded with this error indicating a temporary problem: “451 4.7.0 Temporary server error. Please try again later. PRX5 …” This is not an error caused because of […]

Office365 SMTP AUTH XOAUTH2 Fails with “535 5.7.3 Authentication unsuccessful”

April 17, 2024 in Office365

If you successfully minted an OAuth2 access token for your Azure Entra Id App, but then it fails when attempting to use it in the SMTP protocol for sending email with the error: AUTH XOAUTH2 user=xxx auth=Bearer ********************** 535 5.7.3 Authentication unsuccessful [BN9PXXXA0336.namprd03.prod.outlook.com 2024-04-16T12:11:26.548Z 08DC9999186DF999] Check your Entra Id App Registration to make sure you […]

How to Troubleshoot Office365 IMAP AUTHENTICATE XOAUTH2 Failed

April 8, 2024 in IMAP

Question: We have an issue reading mail and we see the below error message in log Login: DllDate: Oct 27 2023 ChilkatVersion: 9.5.0.96 UnlockPrefix: *** UnlockStatus: 2 Architecture: Little Endian; 32-bit Language: *** VerboseLogging: 0 imapServer: outlook.office365.com loginX(2219ms): login: abc@example.com greeting: * OK The Microsoft Exchange IMAP4 service is ready. [***] authenticateXOAuth2(2219ms): xoauth2Imap(2219ms): ConnectionType: SSL/TLS […]

Office365 App Setup for SMTP, POP, IMAP OAuth2 Client Credentials

December 24, 2023 in OAuth2

This blog post walks you through the complete Azure App Registration process, including the subsequent Exchange Online PowerShell commands needed to achieve the OAuth2 client credentials flow for Office365 email sending and reading via the SMTP, IMAP, and POP3 protocols. I wish there was an “easy button”, but unfortunately it does not exist. Step 1. […]

ASP VBscript and Office365 OAuth2 Access Token

July 25, 2023 in Uncategorized

The Chilkat.OAuth2 class is designed for desktop applications, not server-side web applications. To explain further: The call to OAuth2.StartAuth does 2 things: Returns a URL you’ll open in a browser to interactively get authorization from the service’s account owner. Starts a background thread to act as a web server for the redirect request that will […]

Office365 SMTP: 535 5.7.139 Authentication unsuccessful, SmtpClientAuthentication is disabled for the Tenant.

July 3, 2023 in Uncategorized

This blog post is about the following error encountered when trying to send email via Chilkat.MailMan.SendEmail (using the SMTP protocol). smtpAuthenticate: smtp_host: smtp.office365.com smtp_port: 587 smtp_user: **** smtpAuthenticate: login_method: XOAUTH2 auth_xoauth2: username: **** sendCmdToSmtp: SmtpCmdSent: {PasswordOrCredentials} –sendCmdToSmtp readSmtpResponse: SmtpCmdResp: 535 5.7.139 Authentication unsuccessful, SmtpClientAuthentication is disabled for the Tenant. Visit https://aka.ms/smtp_auth_disabled for more information. [****.PROD.OUTLOOK.COM […]

Office365 POP3 Authenticate Fails but Previously Succeeded

June 15, 2023 in Uncategorized

It’s normal for OAuth2 access tokens to expire after some time, such as 1 hour, and then you’ll need to refresh and retry. For example, this error in the LastErrorText for a call to Pop3Authenticate could indicate the OAuth2 accces token expired: Pop3Authenticate: DllDate: Mar 28 2023 ChilkatVersion: 9.5.0.94 UnlockPrefix: *** Architecture: Little Endian; 32-bit […]

office365.com SMTP, POP3, IMAP OAuth2 Tips, Hints, and Solutions

December 12, 2022 in OAuth2

This page will be updated as time progresses with what we’ve learned about getting things working with OAuth2 authentication for office365.com using the email protocols: SMTP, POP3, and IMAP. How do Other Office365 Users Send Email using my App Registered in my Azure Active Directory? It’s important to understand Tenancy in Azure Active Directory Apps.   […]

Create Azure App Registration for use with IMAP, POP3, and SMTP

August 13, 2022 in Exchange Online

1) Go to https://portal.azure.com/#home and login to your Microsoft account. then go to Azure Active Directory.   2) Click On App Registrations * Copy your Tenant ID, you’ll need it later. 3) Click on “+ New registration” 4) Name your App and Click Register. Give it a name. For the Redirect URI, select “Web” and […]

smtp.office365.com – Failed to get initial SMTP Response

May 13, 2022 in Office365

If something on the client-side is blocking communications, such as a hardware or software firewall, or anti-virus, then it may be that a TLS connection is established, but then trying to read the 1st message from the server gets blocked.  When this happens, the contents of the LastErrorText look like this.   (The LastErrorText for a […]