Skip to content

Releases: Set-OutlookSignatures/Set-OutlookSignatures

Release v4.26.1

17 Mar 20:53

Choose a tag to compare

v4.26.1 - 2026-03-17

Put Notice here

Breaking: XXX

Set-OutlookSignatures

Changed

  • Update MSAL.Net to v4.83.1.
  • Update libphonenumber-csharp to v9.0.26.

Added

  • Warn when the Entra ID app used is missing optional permissions, exit when it is missing required permissions.

Fixed

  • Fix WatchCatchableExitSignal not ending the script. Set-OutlookSignatures finishes all its signature and log file related tasks but then hangs infinitely. This does not happen in all environments but depends on combinations of calling process, console host, and .Net version.

Benefactor Circle add-on

Fixed

  • Do not reset Outlook Web and New Outlook on Windows user configuration options - such as time zone, dark mode, and reading pane position - when configuring signatures in Outlook Web. The problem only happens in v4.26.0 when the new Graph API code path is used. (#152) (Thanks @wwa-jvteeffelen!)

Outlook add-in (part of the Benefactor Circle add-on)

Changed

  • Update @azure/msal-browser to v5.5.0.

File hashes and code signing

  • SHA256 hash of 'Set-OutlookSignatures_v4.26.1.zip': 747FABE4C9C2FB4370565024ADF44F971E0EF1B4BAE56EB45A8D03FE62810B93
  • See 'hashes.txt' in 'Set-OutlookSignatures_v4.26.1.zip' for the hash value of every single file in the release.
    • Compare these hashes with the output of 'Get-ChildItem -Recurse | Get-FileHash -LiteralPath $_.FullName -Algorithm SHA256'.
  • Files are code signed with ExplicIT Consulting's Extended Validation (EV) certificate.
    • Check the signature with 'Get-ChildItem -Include '*.ps*1', '*.dll' -Recurse | Get-AuthenticodeSignature'.

Release v4.26.0

09 Mar 17:46

Choose a tag to compare

v4.26.0 - 2026-03-09

Pay attention if you have mailboxes in Exchange Online: Microsoft begins removing access to Exchange Web Service (EWS) from Exchange Online. Set-OutlookSignatures v4.26.0 uses newly published Graph APIs in favor of EWS.
Make sure to modify the permissions assigned to your Entra ID apps as mentioned below in the sections 'Set-OutlookSignatures' and 'Benefactor Circle add-on'.
A fallback to EWS is integrated, but it will stop working as soon as Microsoft begins to disable EWS in Exchange Online in the next months.

Set-OutlookSignatures

Changed

  • Use Graph API for mailboxes hosted in Exchange Online instead of EWS (Exchange Web Services) for the last remaining features. This has not been possible before as the Graph API lacked these features.
    • Make sure to REMOVE the 'EWS.AccessAsUser.All' delegated permission from the Entra ID app you use for Set-OutlookSignatures and ADD the delegated Graph API permission 'MailboxConfigItem.ReadWrite'.
      Alternatively, you can delete the existing Entra ID app, create a new one using '.\sample code\Create-EntraApp.ps1', and then update your configuration ('GraphClientId') with the new application ID.
      A fallback to EWS is integrated, but will stop working as soon as Microsoft begins to disable EWS in Exchange Online in the next months.
  • Always consider mailbox display sort order of Classic Outlook for Windows when prioritizing mailboxes, even when the display sort order does not match the number of mailboxes found. This overcomes an Outlook issue where Outlook does not always update the display sort order when a new mailbox is added.
  • Update address-formatting database to 064d82b.
  • Update libphonenumber-csharp to v9.0.25.
  • Update MSAL.Net to v4.82.1.
  • Make the CHANGELOG easier to read by making the change categories (Changed, Added, Removed, Fixed) sub-categories of the products (Set-OutlookSignatures, Benefactor Circle add-on, Outlook add-in). The change has been applied to all CHANGELOG entries starting with v4.20.0.
  • Add content to FAQ 'Why is no admin or user GUI available?'.

Added

Fixed

  • Make sure signature marking works for downloaded roaming signatures even when they are only an HTML fragment and not a full HTML document. This issue results from Microsoft changing roaming signature HTML processing.
  • Make sure the ConvertEnconding function adds the '<head>' tag to HTML files correctly when the HTML code is just an HTML fragment and not a full document.
  • Make sure 'MoveCSSInline' does not crash Set-OutlookSignatures when the resulting HTML code is a null string (which can be the result of an empty signature or a problem within the component). (Thanks Jeff Feldstein!)

Benefactor Circle add-on

Changed

  • Use Graph API for mailboxes hosted in Exchange Online instead of EWS (Exchange Web Services) for the last remaining features. This has not been possible before as the Graph API lacked these features.
    • If you use 'SimulateAndDeploy' mode, you likely have a separate Entra ID app for it. Make sure to REMOVE the 'EWS.AccessAsUser.All' delegated permission and the Office 365 Exchange Online application permission 'full_access_as_app', then ADD the Graph API permission 'MailboxConfigItem.ReadWrite' as delegated permission and as application permission.
      Alternatively, you can delete the existing Entra ID app, create a new one using '.\sample code\Create-EntraApp.ps1', and then update your configuration with the new application ID and secret.
      A fallback to EWS is integrated, but will stop working as soon as Microsoft begins to disable EWS in Exchange Online in the next months.

Added

  • Add support for sovereign clouds: Bleu (France), Delos (Germany), and GovSG (Singapore).
  • Add support for all future cloud environments via the '$CustomCloudEnvironments' variable in a custom Graph configuration file. This makes Set-OutlookSignatures usable in any M365 cloud, even when the endpoints have not been published, which is not unusual when the environment is still in its soft-launch phase, for example. See the file '.\config\default graph config.ps1' for an example.

Fixed

  • Make sure signature marking works for downloaded roaming signatures from mailboxes other than the one of the current user. This issue results from Microsoft changing roaming signature HTML processing.

Outlook add-in (part of the Benefactor Circle add-on)

Changed

  • Update @azure/msal-browser to v5.4.0.

Added

  • Add support for sovereign clouds: Bleu (France), Delos (Germany), and GovSG (Singapore).
  • Add support for all future cloud environments via the '$CustomCloudEnvironments' parameters. This makes the Outlook add-in usable in any M365 cloud, even when the endpoints have not been published, which is not unusual when the environment is still in its soft-launch phase, for example. See the file '.\run_before_deployment.ps1' for an example.
  • Add the 'HTML as plain text' option to the signature 'Copy' button in the taskpane.

File hashes and code signing

  • SHA256 hash of 'Set-OutlookSignatures_v4.26.0.zip': 218C4C3EC54B94AA52282C331843A4E57F239D07CE13A39017AC12F8316B0606
  • See 'hashes.txt' in 'Set-OutlookSignatures_v4.26.0.zip' for the hash value of every single file in the release.
    • Compare these hashes with the output of 'Get-ChildItem -Recurse | Get-FileHash -LiteralPath $_.FullName -Algorithm SHA256'.
  • Files are code signed with ExplicIT Consulting's Extended Validation (EV) certificate.
    • Check the signature with 'Get-ChildItem -Include '*.ps*1', '*.dll' -Recurse | Get-AuthenticodeSignature'.

Release v4.25.0

23 Dec 11:59

Choose a tag to compare

v4.25.0 - 2025-12-22

Benefactor Circle add-on users with mailboxes in Exchange Online should update to this version as soon as possible. Microsoft will begin changing roaming signature HTML processing shortly. Update as soon as possible to avoid potential negative impact on the parameters 'DeleteScriptCreatedSignaturesWithoutTemplate' and 'DeleteUserCreatedSignatures'.

Variable replacement in Word is now much faster, but you must test your DOCX templates first. You must make sure that every character of a replacement variable in the template is formatted identically, or the replacement will fail. An example is given in the detailed changelog entry below.

Changed

Set-OutlookSignatures

  • Switch to a new way of marking signatures created by Set-OutlookSignatures, while keeping compatibility with the existing one. This makes sure that the parameters 'DeleteScriptCreatedSignaturesWithoutTemplate' and 'DeleteUserCreatedSignatures', as well as similar features keep working when Microsoft changes roaming signature HTML processing.
  • Speed up replacing non-picture variables in DOCX (Word) templates by no longer replacing the variables in Word, but in the exported HTM file.
    • You must make sure that every character of a replacement variable in the template is formatted identically, or the replacement will fail.
      An example: When not all characters of '$CurrentUserGivenName$' are formatted identically, the string cannot be found in the final HTML signature created from the DOCX tempate file, which makes it impossible to replace the placeholder with the actual given name of the currently logged-on user. The slower Word variant used in earlier versions allowed for this, but always used the formatting of the first letter for the replaced text.
  • Update 'MoveCSSInline' to fall back to non-inlined HTML in case of errors.
  • Update libphonenumber-csharp to v9.0.21.
  • Update address-formatting datbase to 8444a0cc989042ebb21e6420f82bc4ded05a7fec.
  • Rephrase the welcome screen.
  • Make Graph API queries more resilient by retrying them five seconds after catching an error. This compensates for brief "hiccups" in the internal environment, on the Internet, and in Microsoft's data centers.

Benefactor Circle add-on

  • Embed images when setting Outlook on the web signatures (classic and roaming), independent from the value of the 'EmbedImagesInHtml' parameter. This makes sure that images are also considered for default signatures that have not been created by Set-OutlookSignatures.

Outlook add-in (part of the Benefactor Circle add-on)

  • Update @azure/msal-browser to v4.27.0.

Added

Set-OutlookSignatures

  • Add shorter replacement variable names. To simplify signature design in limited space, shorter versions of replacement variables are automatically added. The original long names remain the default; short names are just an extra option. This applies to both default and custom variables.
    Implementation logic and usage examples:
    1. CurrentUserManager -> UM
      Example: '$CurrentUserManagerVariableX$' is also available as '$UMVariableX$'
    2. CurrentMailboxManager -> MM
      Example: '$CurrentMailboxManagerVariableX$' is also available as '$MMVariableX$'
    3. CurrentUser -> U
      Example: '$CurrentUserVariableX$' is also available as '$UVariableX$'
    4. CurrentMailbox -> M
      Example: '$CurrentMailboxVariableX$' is also available as '$MVariableX$'
  • Show a warning when a GPO (group policy object) setting takes precedence over the Outlook registry value set by the 'DisableRoamingSignatures' parameter. Warnings are also shown when a GPO (group policy object) setting takes precedence over the registry values 'Send Pictures With Document' (Outlook), 'DisableWarningOnIncludeFieldsUpdate' (Word), and 'AlertIfNotDefault' (Word).
  • Show a warning when a template contains an image in a format unusual for emails. The usual usual image formats supported by basically all email clients are JPG, JPEG, PNG, and GIF.
  • Handle non-HTML-conformant 'img' tags with 'src' attributes starting with './' and '.'. While not HTML conformant, this format is intuitive and all major browsers support it.
  • Add new FAQ 'How to add a calender link'

Benefactor Circle add-on

  • Make the parameter 'DeleteScriptCreatedSignaturesWithoutTemplate' remove old signatures which can only be leftovers of switching from 'DisableRoamingSignatures false' to 'DisableRoamingSignatures true', even when these leftovers have not been created by Set-OutlookSignatures.
  • Show a warning when a signature has more than 30,000 characters (excluding images) and will therefore probably not work in Outlook add-in launch events and the taskpane.
  • Add additional code to '.\sample code\Create-EntraApp.ps1' ensuring that default configuration parameters, package providers, and package repositories are available. Force the use of PowerShell Gallery when searching for required packages.

Outlook add-in (part of the Benefactor Circle add-on)

  • Show a warning in the taskpane of the Outlook add-in when the signature shown in the preview has more than 30,000 characters (excluding images) and will therefore probably not work in Outlook add-in launch events and the taskpane.
  • Add to the taskpane a "Copy to clipboard" button for the currently previewed signature. This makes it easy to copy a signature to another email client and to overcome the 30,000 character limit.
  • Add to the taskpane a "Copy to clipboard" button for the log output.
  • Add to the taskpane a "Reload add-in" button for iOS and a link to instructions how to clear the add-in cache on all platforms.
  • Add to the online documentation instructions how to 'Clear the Outlook add-in cache'.

Fixed

Set-OutlookSignatures

  • Make sure the '$Current[User|Manager|Mailbox|MailboxManager]PostalAddress$' not only contains line breaks when using DOCX templates, but also when using HTM templates.

Benefactor Circle add-on

  • Fix warning message 'Signature file '.htm' not found. Outlook on the web HTML signature will be blank.', which leads to not setting the signature in classic Outlook on the web. This is only relevant for mailboxes hosted in Exchange on-prem when being accessed via Outlook on the web and when not using the Outlook add-in.

File hashes and code signing

  • SHA256 hash of 'Set-OutlookSignatures_v4.25.0.zip': 480C3AD54FF7A04C3D15D6D528088745CEFEB1694985F0BEA4A8B69E69667991
  • See 'hashes.txt' in 'Set-OutlookSignatures_v4.25.0.zip' for the hash value of every single file in the release.
    • Compare these hashes with the output of 'Get-ChildItem -Recurse | Get-FileHash -LiteralPath $_.FullName -Algorithm SHA256'.
  • Files are code signed with ExplicIT Consulting's Extended Validation (EV) certificate.
    • Check the signature with 'Get-ChildItem -Include '*.ps*1', '*.dll' -Recurse | Get-AuthenticodeSignature'.

Release v4.24.0

26 Nov 15:22

Choose a tag to compare

v4.24.0 - 2025-11-26

Changed

Set-OutlookSignatures

  • Update libphonenumber-csharp to v9.0.19.
  • Update MSAL.Net to v4.79.2.

Outlook add-in (part of the Benefactor Circle add-on)

  • Update @azure/msal-browser to v4.26.2.

Added

Set-OutlookSignatures

  • Make it much easier and more flexible to add account pictures to DOCX templates: Simply add a shape, position it "inline with text" and add the name of the picture replacement variable ('$CurrentUserPhoto$', for example) to the alternative text. The shape is then automatically filled with the picuture you selected, giving you new graphical possibilities. The old way via "link and embed" is still possible, so you do not need to change your templates.
  • Update the function 'ConvertEncoding' to handle and try to automatically correct HTM template files which are not following the required format (UTF-8 without BOM, meta charset definition).
  • Add new FAQ: 'How to deploy a signature only once'
  • Show a warning when a mailbox does not have the 'mail' attribute set, if the mail attribute does not match the primary SMTP address, or if multiple primary SMTP addresses are defined. Each of these misconfigurations will lead to errors in Set-OutlookSignatures and other applications, including Microsoft software.
  • Show a warning when DOCX templates are used and a non-picture replacement variable has more than 255 characters. Use a slower replacement method for these cases.
  • Add a workaround for Microsoft Graph sending malformed IDs for mailbox elements, which in turn can not be used with the Graph API as they are malformed (an error with the code 'ErrorInvalidIdMalformed' can be found in the log file).

Outlook add-in (part of the Benefactor Circle add-on)

  • Show 'CUSTOM_RULES_CODE' in the log output of the Outlook add-in.
  • Add a new configuration parameter: 'LAUNCHEVENTS_HOSTS_AND_PLATFORMS' allows for additional fine-grained control by defining which launch events are enabled on which hosts and platforms (and not just for mobile and non-mobile as Microsoft allows). See 'run_before_deployment.ps1' for details.
  • Add a workaround for New Outlook (and in some cases Outlook Web) behavior: In events, an existing signature is not replaced but added as additional text below the existing one. This can lead to many signatures shown, as the Outlook add-in is triggered by each added or removed recipient.

Fixed

Set-OutlookSignatures

  • Update Graph authentication module to handle a change in the Windows 'dsregcmd /status' output, which can include keys like 'NgcSet' multiple times when additional work accounts have been added to Windows. This could make 'Integrated Windows Authentation without login hint' impossible (silent authentication would still work with the authentication broker method tried later, as all Windows versions in support which allow work accounts also support the broker method).
  • Update country detection for 'FormatPhoneNumber' and 'Format-PostalAddress' to correctly handle null values and whitespace strings.

File hashes and code signing

  • SHA256 hash of 'Set-OutlookSignatures_v4.24.0.zip': 162BFDB235BD84F99FE3E90F59000FD7200B611D62ADBA7D5B8FF01776A46385
  • See 'hashes.txt' in 'Set-OutlookSignatures_v4.24.0.zip' for the hash value of every single file in the release.
    • Compare these hashes with the output of 'Get-ChildItem -Recurse | Get-FileHash -Algorithm SHA256'.
  • Files are code signed with ExplicIT Consulting's Extended Validation (EV) certificate.
    • Check the signature with 'Get-ChildItem -Include '*.ps*1', '*.dll' -Recurse | Get-AuthenticodeSignature'.

Release v4.23.0

18 Oct 21:07

Choose a tag to compare

v4.23.0 - 2025-10-18

Changed

  • Update dependencies
    • @azure/msal-browser v4.25.1
    • HtmlAgilityPack v1.12.4
    • MSAL.Net v4.77.1
    • QRCoder v1.7.0
  • Reduce output of Outlook add-in taskpane when not being viewed in Outlook.
  • Change included sample QR code from MeCard to the more frequently used vCard format.
  • Update sample templates to reflect QR code and phone number changes as described in the 'Added' section.

Added

  • Add check for PowerShell Full Language Mode to all admin scripts, including sample code.
  • Add a phone number formatter based on Googles libphonenumber library.
    The code 'FormatPhoneNumber' in '.\config\default replacement variables.ps1' is used to create the new additional default replacement variables '$Current[user|Manager|Mailbox|MailboxManager][Telephone|Fax|Mobile]-[E164|INTERNATIONAL|NATIONAL|RFC3966]$'. The sample code takes a phone number and optionally a country, and converts them to standardized predefined formats for easy human readability or for use in 'tel:' links. A custom formatting option is also available.
  • Add an address formatter.
    The AddressFormatter module is based on the great work OpenCage GmbH shares on their GitHub repo.
    The code in '.\config\default replacement variables.ps1' used to create the new '$Current[user|Manager|Mailbox|MailboxManager]PostalAddress$' replacement variables can easily be adapted to create other postal addresses matching the formatting rules of the defined for a user or mailbox.
  • Add FAQ 'What can I learn from the code of Set-OutlookSignatures?'. It gives an overview which scripting techniques you can learn from Set-OutlookSignatures.
  • Add '.\sample code\Start-IfADAvailable.ps1', showing how to run Set-OutlookSignatures (and other software) only when a working connection to Active Directory is available.
  • Add a workaround for Windows PowerShell 5.1 sometimes not being able to access variables with a 'script' scope and a name of 'IsWindows', 'IsLinux', or 'IsMacOS'.

Removed

Fixed

  • Fix the Sort-Object parameter to use -Culture in the Intune remediation sample script, restoring culture-aware sorting. (#145) (Thanks @rene-schwabe!)
  • Include relative path information when downloading files from SharePoint Online. This makes sure that images in subfolders are correctly downloaded when using HTM templates.

File hashes and code signing

  • SHA256 hash of 'Set-OutlookSignatures_v4.23.0.zip': 280C22D27CA79161619CFCD86CF4B2D788F61250289187C874815FF8396DB2DD
  • See 'hashes.txt' in 'Set-OutlookSignatures_v4.23.0.zip' for the hash value of every single file in the release.
    • Compare these hashes with the output of 'Get-ChildItem -Recurse | Get-FileHash -Algorithm SHA256'.
  • Files are code signed with ExplicIT Consulting's Extended Validation (EV) certificate.
    • Check the signature with 'Get-ChildItem -Include '*.ps*1', '*.dll' -Recurse | Get-AuthenticodeSignature'.

Release v4.22.0

05 Sep 17:53

Choose a tag to compare

v4.22.0 - 2025-09-05

Changed

  • Update Outlook add-in dependency @azure-msalbrowser to v4.22.0.
  • Change Outlook add-in variable names for clarity:
    • Use 'customRulesResultSignatureName' instead of 'customRulesPropertiesResult'. The old variable name can still be used but the new one overrides it.
  • Force the Outlook add-in to use the Graph API when the mailbox is hosted in Exchange Online, as Microsoft will be turning off EWS for Exchange Online soon and as the Outlook add-in supports the Graph API since it has been released over a year ago.
  • Optimize the performance accessing SharePoint Online via Graph API by using different endpoints and exactly defining the requested attributes. This greatly enhances performance when the content used for Set-OutlookSignatures is not hosted in a separate document library, but in a document library with many other unrelated items.

Added

  • Allow Outlook add-in custom rules code not only to choose from a set of signatures previously deployed using Set-OutlookSignatures, but to set a completely customized signature using the 'customRulesResultSignatureBody' property. This makes the Outlook add-in the most flexible signature add-in on the market as known of today.
    • The 'customRulesResultSignatureBody' proprty is only available for mailboxes hosted in Exchange Online and requires setting two additional permissions in the Entra ID app it uses.
    • See '.\sample code\CustomRulesCode.js' for details about this new feature
  • Add the following additional new features to Outlook add-in custom rules (see '.\sample code\CustomRulesCode.js' in the Outlook add-in folder for details):
    • The 'customRulesProperties.notificationCurrent' property contains the current text used for the Outlook notification shown after the signature has been set, 'customRulesProperties.notificationOriginal' contains the value defined originally for the add-in.
    • Define the text used for the Outlook notification shown after the signature has been set by setting the new 'customRulesResultNotification' variable.
    • Add boolean properties 'customRulesProperties.itemIsReply' and 'customRulesProperties.itemIsForward'.
    • Add boolean properties 'customRulesProperties.itemIsHtml' and 'customRulesProperties.itemIsText'.
    • Add string properties 'graphAccessToken' and 'graphApiEndpoint', which can be used to query the Graph API for use in custom rules.
    • Add sample code showing how to query the Graph API (convert sender SMTP email address to UPN, get basic properties of a user, get transitive group membership of a user).
  • Allow to define a custom ID for the Outlook add-in. This allows using multiple independent configurations and versions of the Outlook add-in in the same environment.
  • Add a workaround in the Outlook add-in for the Microsoft problem with Outlook Web and New Outlook for Windows not replacing signatures but adding them in appointments, resulting in multiple signatures.
  • Add comments to clarify mailbox requirements and permissions in the 'manifest.xml' file of the Outlook add-in.
  • Consider the names of the default signatures defined in Exchange Online when Set-OutlookSignatures runs the Benefactor Circle add-on specific preparations for the Outlook add-in and when the registry does not contain any information about default signatures. This is helpful in scenarios in which Set-OutlookSignatures is used to deploy signatures, but not to define a default signatures.
  • Update '.\sample code\Create-EntraApp.ps1' to include the additional Graph scopes needed for the Outlook add-in feature 'customRulesResultSignatureBody'.

Removed

Fixed

  • Make sure the Outlook add-in correctly reports 'customRulesProperties.itemIsNew' and 'customRulesProperties.itemIsReplyForward' on all platforms and for all item save and sync states when using custom rules code.
  • Make sure the Outlook add-in does not re-use 'customRulesPropertiesResult' between runs, no matter if triggered manually via the taskpane or automatically via a launch event.
  • Add an additional Graph scope to '.\sample code\Create-EntraApp.ps1' to avoid problems with granting admin consent for delegated permissions. (#143) (Thanks @wwa-jvteeffelen!)

File hashes and code signing

  • SHA256 hash of 'Set-OutlookSignatures_v4.22.0.zip': 3505397A9F2200C830BF6142D3C62B28973BD924DAB016D612F2F0C340905B00
  • See 'hashes.txt' in 'Set-OutlookSignatures_v4.22.0.zip' for the hash value of every single file in the release.
    • Compare these hashes with the output of 'Get-ChildItem -Recurse | Get-FileHash -Algorithm SHA256'.
  • Files are code signed with ExplicIT Consulting's Extended Validation (EV) certificate.
    • Check the signature with 'Get-ChildItem -Include '*.ps*1', '*.dll' -Recurse | Get-AuthenticodeSignature'.

Release v4.21.0

15 Aug 20:18

Choose a tag to compare

v4.21.0 - 2025-08-15

Changed

  • Update dependency MSAL.Net to v4.75.0.
  • Update Outlook add-in dependency @azure-msalbrowser to v4.20.0.

Added

  • Add the following new features to the Outlook add-in:
    • React to launch events OnMessageRecipientsChanged and OnAppointmentAttendeesChanged.

    • Allow adding custom code to the add-in so you can directly influence which signature it will set.
      For example, you can set a specific signature…

      • …when there are only internal recipients, or another signature when there are external recipients
      • …depending on the from email address
      • …when a specific customer is in the To field
      • …when the current item is a mail or an appointment
      • …when the current item is a new mail, or another signature when it is a reply or a forward
      • …depending on the subject
      • …or any other condition derived from the information available in the customRulesProperties object

      See '.\sample code\CustomRulesCode.js' in the Outlook add-in folder for details.

Removed

Fixed

  • Correct a problem reading email addresses from New Outlook for Windows. (#140) (Thanks @psic4t!)

File hashes and code signing

  • SHA256 hash of 'Set-OutlookSignatures_v4.21.0.zip': 7655CF751626DB5FC0F28CB136AD74C17436659443099A97A3BCFBA051F4C408
  • See 'hashes.txt' in 'Set-OutlookSignatures_v4.21.0.zip' for the hash value of every single file in the release.
    • Compare these hashes with the output of 'Get-ChildItem -Recurse | Get-FileHash -Algorithm SHA256'.
  • Files are code signed with ExplicIT Consulting's Extended Validation (EV) certificate.
    • Check the signature with 'Get-ChildItem -Include '*.ps*1', '*.dll' -Recurse | Get-AuthenticodeSignature'.

Release v4.20.4

12 Aug 10:18

Choose a tag to compare

v4.20.4 - 2025-08-12

Changed

  • Update dependency MSAL.Net to v4.74.1.
  • Update dependency HtmlAgilityPack to v1.12.2.
  • Update dependency UTF.Unknown to v2.6.0.
  • Update Outlook add-in dependency @azure-msalbrowser to v4.19.0.

Added

  • Add workaround for Microsoft internal problems with roaming signatures API, which would result in the following error when uploading roaming signatures to mailboxes which are not the one of the logged-on user (especially in SimulateAndDeploy mode). The log would contain the error "The response status code for https://localhost:444/owa/service.svc?action=SanitizeHtml action \u0027SanitizeHtml\u0027 is InternalServerError. ReasonPhrase:Internal Server Error".
  • Add hints about probable root causes of empty signatures lists in the log output of the Outlook add-in.

Removed

Fixed

File hashes and code signing

  • SHA256 hash of 'Set-OutlookSignatures_v4.20.4.zip': D996D8FB1128E318E210EAE1342DEC9110AD182AE724989FDC981A7F772A011C
  • See 'hashes.txt' in 'Set-OutlookSignatures_v4.20.4.zip' for the hash value of every single file in the release.
    • Compare these hashes with the output of 'Get-ChildItem -Recurse | Get-FileHash -Algorithm SHA256'.
  • Files are code signed with ExplicIT Consulting's Extended Validation (EV) certificate.
    • Check the signature with 'Get-ChildItem -Include '*.ps*1', '*.dll' -Recurse | Get-AuthenticodeSignature'.

Release v4.20.3

17 Jul 15:09

Choose a tag to compare

v4.20.3 - 2025-07-17

Changed

  • Update dependency MSAL.Net to v4.74.0.
  • Update Outlook add-in dependency @azure-msalbrowser to v4.15.0.

Added

Removed

Fixed

  • Add a workaround for PowerShell 5.1 not correctly converting arrays to JSON when passing them via the InputObject parameter. (#136)
  • Fix Set-OutlookSignatures quitting with exit code 14 when using it in SimulateAndDeploy mode for Exchange Online.
  • Add a workaround for PowerShell not reliably resolving SMB paths with relative parts to absolute paths in the MSAL.PS module.

File hashes and code signing

  • SHA256 hash of 'Set-OutlookSignatures_v4.20.3.zip': AF6EC466D7321796D9726800D1F293B6F26D63FF894391FA4198008B477FECC8
  • See 'hashes.txt' in 'Set-OutlookSignatures_v4.20.3.zip' for the hash value of every single file in the release.
    • Compare these hashes with the output of 'Get-ChildItem -Recurse | Get-FileHash -Algorithm SHA256'.
  • Files are code signed with ExplicIT Consulting's Extended Validation (EV) certificate.
    • Check the signature with 'Get-ChildItem -Include '*.ps*1', '*.dll' -Recurse | Get-AuthenticodeSignature'.

Release v4.20.2

07 Jul 22:20

Choose a tag to compare

v4.20.2 - 2025-07-08

Add features with the Benefactor Circle add-on and get fee-based support from ExplicIT Consulting
See 'Benefactor Circle add-on' for details about these features and how you can benefit from them with a Benefactor Circle license.

Changed

  • Update dependency PreMailer.Net to v2.7.2.
  • Update Outlook add-in dependency @azure-msalbrowser to v4.14.0.

Added

Removed

Fixed

  • Update handling of the '@' character in signatures names. Microsoft no longer allows '@' in roaming signature names as it is reserved for internal use, and Microsoft Outlook will follow soon.
    • Add '@' to the list of invalid characters for signatures names as documented in sample INI files. The new complete list of invalid characters is '\/:"*?><,|@'.
    • Convert all invalid characters to '_', but '@' to '_at_'.
    • Only keep the '@' character where it is required for Microsoft internal use in roaming signature names.

File hashes and code signing

  • SHA256 hash of 'Set-OutlookSignatures_v4.20.2.zip': 9F92CC325560E978E762AAA947DB8F72CB4EC2A00B5FC4370C89F5191F15D75C
  • See 'hashes.txt' in 'Set-OutlookSignatures_v4.20.2.zip' for the hash value of every single file in the release.
    • Compare these hashes with the output of 'Get-ChildItem -Recurse | Get-FileHash -Algorithm SHA256'.
  • Files are code signed with ExplicIT Consulting's Extended Validation (EV) certificate.
    • Check the signature with 'Get-ChildItem -Include '*.ps*1', '*.dll' -Recurse | Get-AuthenticodeSignature'.