dotkernel/dot-mail-outlook

Dotkernel Dot-Mail Outlook ESMTP service.

0.2 2025-08-19 10:49 UTC

This package is auto-updated.

Last update: 2025-08-19 10:51:01 UTC


README

Dotkernel's Microsoft Outlook ESMTP email service, implementing the client credentials grant_type.

dot-mail-outlook is a wrapper on top of dotkernel/dot-mail

Badges

OSS Lifecycle PHP from Packagist (specify version)

GitHub issues GitHub forks GitHub stars GitHub license

Build Static codecov PHPStan

Installation

Install dotkernel/dot-mail-outlook by executing the following Composer command:

composer require dotkernel/dot-mail-outlook

Register src/ConfigProvider.php in config/config.php by adding the following line:

\Dot\MailOutlook\ConfigProvider::class,

Configuration

Copy the dot-mail-outlook.local file to your autoload folder (or copy its contents to mail.global.php) and fill in the relevant information.

<?php

declare(strict_types=1);

$tenant = '';

return [
    'xoauth2_outlook' => [
        "tokenCacheFile"  => '',
        "tenant"          => $tenant,
        "access_code_url" => "https://login.microsoftonline.com/{$tenant}/oauth2/v2.0/token",
        "client_id"       => '',
        "client_secret"   => '',
        "scope"           => 'https://outlook.office.com/.default',
        "grant_type"      => 'client_credentials',
    ],
];

The dotkernel/dot-mail config file should be updated to make sure the necessary options are set:

  • transport MUST be set to under the dot_mail.default.transport key.
  • port MUST be set to 587 under the dot_mail.default.smtp_options.port key.
  • tls MUST be set to STARTTLS under the dot_mail.default.smtp_options.tls key.
  • host MUST be one of smtp-mail.outlook.com or smtp.office365.com under the dot_mail.default.smtp_options.host key.

Additional info

dotkernel/dot-mail-outlook makes use of SASL XOAUTH2 mechanism for use with the SMTP AUTH command.

To allow generating the bearer token in the background, without user input required, dot-mail-outlook implements the client credentials flow from Microsoft:

Make sure to set all relevant permissions, give relevant tenant administrator consent and register the necessary service principals, as described in Microsoft's flow.