Skip to content

Releases: Set-OutlookSignatures/Set-OutlookSignatures

Release v4.13.0

27 Jun 10:20
Compare
Choose a tag to compare

v4.13.0 - 2024-06-27

Attention, Exchange Online admins
See What about the roaming signatures feature in Exchange Online? in .\docs\README for details on how this feature works. Set-OutlookSignatures supports cloud roaming signatures - see MirrorCloudSignatures in .\docs\README for details.

Add features with the Benefactor Circle add-on and get fee-based support from ExplicIT Consulting
See .\docs\Benefactor Circle or https://explicitonsulting.at for details about these features and how you can benefit from them with a Benefactor Circle license.

Changed

  • Update dependency MSAL.Net to v4.61.3.
  • Update code in MSAL.PS used to detect active window handle, required for interactive login to Graph.
  • Do not add DOCX templates to the list of recent files in Word, and do not route the document to the next recipient if the document has a routing slip.

Added

  • Add a hint in INI files stating to not modify them directly but a copy of them, and to follow the README FAQ What is the recommended folder structure for script, license, template and config files?.
  • Add a fallback mechanism for detecting the User Principal Name of the currently logged-in user on Windows. This solves the rare case with unknown root cause where this information is not available in the registry. (#116) (Thanks @CarlInLV!)
  • Add new parameter SignatureCollectionInDrafts. Enabled per default, this creates and updates an email message with the subject 'My signatures, powered by Set-OutlookSignatures Benefactor Circle' in the drafts folder of the current user, containing all available signatures in HTML and plain text for easy access in mail clients that do not have a signatures API. See .\docs\README for details.

Removed

  • Remove dependency to System.Web.dll for URL encode and decode operations.

Fixed

  • Truncate text signature for SignatureTextOnMobile when setting Outlook Web signature if it is longer than 512 characters, and show a warning message. SignatureTextOnMobile is only used when browsing Outlook Web on a mobile device. (Thanks @bmartins-EMCDDA!)

File hashes and code signing

  • SHA256 hash of 'Set-OutlookSignatures_v4.13.0.zip': 701C902C65BC8616F3213B5DF2B4E60B3AAB69B8B7F5C2304B2C5700EAF5056B
  • See 'hashes.txt' in 'Set-OutlookSignatures_v4.13.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.12.2

27 May 17:16
Compare
Choose a tag to compare

v4.12.2 - 2024-05-27

Attention, Exchange Online admins
See What about the roaming signatures feature in Exchange Online? in .\docs\README for details on how this feature works. Set-OutlookSignatures supports cloud roaming signatures - see MirrorCloudSignatures in .\docs\README for details.

Add features with the Benefactor Circle add-on and get fee-based support from ExplicIT Consulting
See .\docs\Benefactor Circle or https://explicitonsulting.at for details about these features and how you can benefit from them with a Benefactor Circle license.

Fixed

  • Convert account pictures from Active Directory for use in signatures without byte array conversion error.

File hashes and code signing

  • SHA256 hash of 'Set-OutlookSignatures_v4.12.2.zip': 7A04B141C7FBA0751BDEEAD52BA78633C6A0149ED9D7EDDA4B00D224A9DFC542
  • See 'hashes.txt' in 'Set-OutlookSignatures_v4.12.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.

v4.12.1

24 May 09:21
Compare
Choose a tag to compare

v4.12.1 - 2024-05-24

Attention, Exchange Online admins
See What about the roaming signatures feature in Exchange Online? in .\docs\README for details on how this feature works. Set-OutlookSignatures supports cloud roaming signatures - see MirrorCloudSignatures in .\docs\README for details.

Add features with the Benefactor Circle add-on and get fee-based support from ExplicIT Consulting
See .\docs\Benefactor Circle or https://explicitonsulting.at for details about these features and how you can benefit from them with a Benefactor Circle license.

Changed

  • Update dependency MSAL.Net to v4.61.1.
  • Use pure .Net methods to create Windows shortcut files in sample code and in Set-OutlookSignatures, as Microsoft marked VBS (Visual Basic Script) as deprecated and will remove it in future versions of Windows.

Fixed

  • Name temporary file names correctly when the MailboxSpecificSignatureNames parameter is enabled, so that out-of-office replies can be set in this mode.
  • Show the 'MSAL.PS Graph token cache info' when run in Windows PowerShell (PowerShell 5.x).
  • Fix simulation mode wrongly deleting all '___Mailbox *' folders in the output directory, but the last one.
  • Benefactor Circle only: Search for license groups in Entra ID via on-prem SIDs may fail because of a regression in checking the SID format.

File hashes and code signing

  • SHA256 hash of 'Set-OutlookSignatures_v4.12.1.zip': 8BD4ADA4536646A07A9BF2C201C0FE7793240A17409EE88978F53B279E9C2ED4
  • See 'hashes.txt' in 'Set-OutlookSignatures_v4.12.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 -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.12.0

07 May 12:02
Compare
Choose a tag to compare

v4.12.0 - 2024-05-07

Add features with the Benefactor Circle add-on and get fee-based support from ExplicIT Consulting
See .\docs\Benefactor Circle or https://explicitonsulting.at for details about these features and how you can benefit from them with a Benefactor Circle license.

Attention, Exchange Online admins
See What about the roaming signatures feature in Exchange Online? in .\docs\README for details on how this feature works. Set-OutlookSignatures supports cloud roaming signatures - see MirrorCloudSignatures in .\docs\README for details.

Changed

  • Graph connectivity: Update dependency MSAL.Net to v4.60.3.
  • The Quick Start Guide is now easier to follow and clearer on requirements.
  • Updated sample templates (full barrier-free design, and other smaller changes).
  • Updated Authentication chapter in .\docs\README.
  • The API for saving photos and user-defined images has been changed, which significantly speeds up the creation of temporary files.

Added

  • Support for Linux and macOS. Some restrictions apply to Non-Windows platforms, see Linux and macOS in the Requirements chapter of .\docs\README for details.
  • Custom image replacement variables that you can fill yourself with a byte array: $CurrentUserCustomImage[1..10]$, $CurrentUserManagerCustomImage[1..10]$, $CurrentMailboxCustomImage[1..10]$, $CurrentMailboxManagerCustomImage[1..10]$. Usecases: Account pictures from a share, QR code vCard/URL/text/Twitter/X/Facebook/App stores/geo location/e-mail, etc.
    • QR code vCard (MeCard) in custom image replacement variable $Current[..]CustomImage1$. See file .\config\default replacement variables.ps1 for the easily customizable code used to create it. Also see .\docs\README for details.
  • Support for maximum barrier-free accessibility with screen readers and comparable tools. Use Word ScreenTips and HTML titles for hyperlinks, and alt text for images, replacement variables are supported. All sample templates have been updated accordingly. Just hover your mouse pointer over a hyperlink or image to see additional information.
  • Show a warning when authentication to Outlook Web (no matter if on-prem or in the cloud) is not possible via Autodiscover, as this means that Autodiscover is not configured correctly.
  • The MirrorLocalSignaturesToCloud parameter is now also available under the name MirrorCloudSignatures. The old name may be removed with the next major release (v5.0.0).

Fixed

  • When using HTM templates, image paths were not correctly modified when containing one of the reserved characters defined in RFC3986 (:/?#[]@!$&'()*+,;=, Uri.EscapeUriString vs. Uri.EscapeDataString).

File hashes and code signing

  • SHA256 hash of 'Set-OutlookSignatures_v4.12.0.zip': 506F3806162E56E247C5644D9FF8D9C679038AA87BE7E791FFA58CAA505278A5
  • See 'hashes.txt' in 'Set-OutlookSignatures_v4.12.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.11.0

26 Mar 18:32
Compare
Choose a tag to compare

v4.11.0 - 2024-03-26

Some features are exclusive to the commercial Benefactor Circle add-on
See .\docs\Benefactor Circle or https://explicitonsulting.at for details about these features and how you can benefit from them with a Benefactor Circle license.

Attention, cloud mailbox users:
See What about the roaming signatures feature in Exchange Online? in .\docs\README for details on how this feature works. Set-OutlookSignatures supports cloud roaming signatures - see MirrorLocalSignaturesToCloud in .\docs\README for details.

Changed

  • Updated sample templates
  • Authentication against SharePoint document libraries containing templates or INI files has been adapted to Microsoft API changes not yet documented
  • ExplicIT Consulting's code signing certificate is now added to existing certificates. This increases security as you can now easily check that, for example, the DLL files of the dependency Microsoft Authentication Library (MSAL) are the original files published by Microsoft.

Added

  • New parameter MailboxSpecificSignatureNames. By setting the MailboxSpecificSignatureNames parameter to true, the e-mail address of the current mailbox is added to the name of the signature - instead of a single Signature A file, Set-OutlookSignatures can create a separate signature file for each mailbox: Signature A (user.a@example.com), Signature A (mailbox.b@example.net), etc. See.\docs\README for details.
  • When MirrorLocalSignaturesToCloud is enabled,
    • download signatures not only from the current user's mailbox, but from all mailboxes where possible (full access with current user's credentials, due to Microsoft restrictions)
    • upload personal signatures to Exchange Online mailbox of logged-on user right after they have been created and before they are even copied to a local signature path, avoiding a race condition with the internal download schedule of Outlook
  • Always use the most recent TLS version available and supported for communication with Microsoft services

Fixed

  • DeleteUserCreatedSignatures, DeleteScriptCreatedSignaturesWithoutTemplate and AdditionalSignaturePath now handle folder and file names with special characters ($'‘’‚‛) correctly
  • Check for PowerShell Full Language mode before checking for new versions to avoid an error message without a hint to the root cause
  • When an Outlook profile is available, set default signatures no matter if current mailbox is a dummy mailbox or not
  • Correctly handle INI files not containing SortOrder or SortCulture information

v4.10.1

06 Feb 17:55
Compare
Choose a tag to compare

v4.10.1 - 2024-02-06

Some features are exclusive to the commercial Benefactor Circle add-on
See .\docs\Benefactor Circle or https://explicitonsulting.at for details about these features and how you can benefit from them with a Benefactor Circle license.

Attention, cloud mailbox users:
See What about the roaming signatures feature in Exchange Online? in .\docs\README for details on how this feature works. Set-OutlookSignatures supports cloud roaming signatures - see MirrorLocalSignaturesToCloud in .\docs\README for details.

Changed

  • Graph connectivity: Update dependency MSAL.Net to v4.59.0
  • Updated FAQ How can I deploy and run Set-OutlookSignatures using Microsoft Intune? in .\docs\README, and moved sample code from FAQ to .\sample code directory
  • Active Directory attribute names are no longer case sensitive, making it easier creating own replacement variables and adding custom schema extensions
  • Only use Integrated Windows Authentication for connection to Outlook Web when no cloud token is available
  • If the variable replacement in Word fails, an additional note is displayed about the possible mandatory use of Microsoft Purview Information Protection.
  • Updated sample templates

Added

  • New FAQs Keep users from adding, editing and removing signatures and What is the recommended folder structure for script, license, template and config files? in .\docs\README.

Fixed

  • Workaround for a Microsoft Graph API problem, which returns a HTTP 403 error when querying the settings of some mailboxes. This query now only happens when absolutely necessary. When this query fails, SetCurrentUserOutlookWebSignature and SetCurrentUserOOFMessage are disabled. Only Microsoft can fix the root cause of this problem.
  • More workarounds for timing problems with file operations in folders used by OneDrive
  • Verbose output no longer logs Graph tokens, only their properties (header and payload data only, no digital signature)
  • When an existing signature is overwritten by a new signature and the two signature names only differ in upper and lower case ("signature a" and "Signature A", for example), always use the casing of the new signature
  • Correctly detect automapped mailboxes in Outlook Web when New Outlook is not used
  • Add scope 'Application.ReadWrite.All' to sample script .\sample code\Create-EntraApp.ps1

Release v4.10.0

05 Jan 11:23
Compare
Choose a tag to compare

v4.10.0 - 2024-01-05

Some features are exclusive to the commercial Benefactor Circle add-on
See .\docs\Benefactor Circle or https://explicitonsulting.at for details about these features and how you can benefit from them with a Benefactor Circle license.

Attention, cloud mailbox users:
See What about the roaming signatures feature in Exchange Online? in .\docs\README for details on how this feature works. Set-OutlookSignatures supports cloud roaming signatures - see MirrorLocalSignaturesToCloud in .\docs\README for details.

Changed

  • Graph connectivity: Update dependency MSAL.Net to v4.58.1

Added

  • Added to the description of each parameter in the script itself and the .\docs\README file:
    • Allowed values
    • Usage examples (PowerShell and Non-PowerShell)
    • Information when a feature requires a Benefactor Circle license
  • Additional descriptions in template INI files
  • A specific warning when the template INI file contains references to templates with a wrong file extension (for example, .html instead of .htm)
  • New FAQs, see .\docs\README for details:
    • How can I deploy and run Set-OutlookSignatures using Microsoft Intune?
    • Why does Set-OutlookSignatures run slower sometimes?

Fixed

  • Correctly handle empty Outlook profiles and a no longer existing default profile
  • Graph authentication: Workaround for MSAL.Net "connection reset error" in browser. See $GraphHtmlMessageSuccess and $GraphHtmlMessageError in .\config\default graph config.ps1 for details.
  • Graph authentication: Workaround for MSAL.Net returning the access token in a different format in interactive and silent authentication

File hashes and code signing

  • SHA256 hash of 'Set-OutlookSignatures_v4.10.0.zip': 415548F88B3D5D69A48F7D824ACF6049FC338AE86D0B823197C2EF3A42035596
  • See 'hashes.txt' in 'Set-OutlookSignatures_v4.10.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.9.0

02 Dec 17:06
Compare
Choose a tag to compare

v4.9.0 - 2023-12-02

Some features are exclusive to the commercial Benefactor Circle add-on
See .\docs\Benefactor Circle or https://explicitonsulting.at for details about these features and how you can benefit from them with a Benefactor Circle license.

Attention, cloud mailbox users:
See What about the roaming signatures feature in Exchange Online? in .\docs\README for details on how this feature works. Set-OutlookSignatures supports cloud roaming signatures - see MirrorLocalSignaturesToCloud in .\docs\README for details.

Changed

  • Word is no longer required to convert signatures to TXT format, which reduces resource consumption and execution time
  • MoveCssInline: Update dependency PreMailer.Net to v2.5.0
  • Graph connectivity: Update dependency MSAL.Net to v4.58.0

Added

  • Check for valid Windows/Outlook/Outlook Web signature names when using the MirrorLocalSignaturesToCloud parameter or the OutlookSignatureName INI parameter
  • MirrorLocalSignaturesToCloud: Only download a roaming signature from Exchange Online when its local version is older or does not exist
  • Sample code SimulateAndDeploy.ps1
    • Display info when a specific job ends, in addition to when there is an error
    • Display info at least once a minute, and make this update interval configurable
    • Separate logs for sample code output, successful jobs, jobs with errors and details of each job
  • New parameter ScriptProcessPriority: Define the script process priority. With lower values, Set-OutlookSignatures runs longer but minimizes possible performance impact. See README for details.

Fixed

  • DeleteScriptCreatedSignaturesWithoutTemplate and DeleteUserCreatedSignatures did not remove all subfolders belonging to a signature
  • When using HTM templates with images in a connected folder, the folder name was not corrected reliably, which resulted in missing images (as they pointed to a wrong path)

Release v4.8.1

24 Nov 17:40
Compare
Choose a tag to compare

v4.8.1 - 2023-11-24

Some features are exclusive to the commercial Benefactor Circle add-on
See .\docs\Benefactor Circle or https://explicitonsulting.at for details about these features and how you can benefit from them with a Benefactor Circle license.

Attention, cloud mailbox users:
See What about the roaming signatures feature in Exchange Online? in .\docs\README for details on how this feature works. Set-OutlookSignatures supports cloud roaming signatures - see MirrorLocalSignaturesToCloud in .\docs\README for details.

Fixed

  • Embedding images and loading the Graph config file is now much faster because of switching from PowerShell cmdlets to .Net system calls for conversions to Base64 (#95)
  • The manager of the current user was not correctly detected in certain hybrid scenarios (Thanks Thomas Müllerchen and Tommy Malodisdach!)
  • The message informing the user before a new browser tab is opened for authentication now does not steal the focus in all combinations of PowerShell Core/Desktop and Windows Terminal/Classic Console Host

Release v4.8.0

20 Nov 16:26
Compare
Choose a tag to compare

v4.8.0 - 2023-11-20

Some features are exclusive to the commercial Benefactor Circle add-on
See .\docs\Benefactor Circle or https://explicitonsulting.at for details about these features and how you can benefit from them with a Benefactor Circle license.

Attention, cloud mailbox users:
See What about the roaming signatures feature in Exchange Online? in .\docs\README for details on how this feature works. Set-OutlookSignatures supports cloud roaming signatures - see MirrorLocalSignaturesToCloud in .\docs\README for details.

Changed

  • Updated dependency MSAL.Net to v4.57.0.
  • Allow more alternate names for cloud environments. See .\docs\README for details about the CloudEnvironment parameter.

Added

  • Graph token cache now not only works in Windows PowerShell 5.1, but also in PowerShell 7.
  • A message box now informs the user before a new browser tab is opened for authentication, as Microsoft still does not show the Entra ID/Azure AD app name in the authentication prompt. The message text can be customized or disabled with the $GraphHtmlMessageboxText parameter in .\config\default graph config.ps1. See that file for details.
  • The HTML message after a successful browser authentication can be customized with the $GraphHtmlMessageSuccess parameter in .\config\default graph config.ps1. See that file for details, and also consider $GraphBrowserRedirectSuccess for a redirection alternative.
  • The HTML message after an unsuccessful browser authentication can be customized with the $GraphHtmlMessageError parameter in .\config\default graph config.ps1. See that file for details, and also consider $GraphBrowserRedirectError for a redirection alternative.
  • New sample code .\sample code\Create-EntraApp.ps1 automates the creation of the Entra app required to access Microsoft Graph.
  • New FAQ How do I alternate banners and other images in signatures?. See .\docs\README for details.

Fixed

  • MirrorLocalSignaturesToCloud now correctly detects cloud mailboxes in hybrid environments when a connection to the on-prem Active Directory is used
  • Setting Word process priority no longer leads to an error in PowerShell 7
  • Fix a regression introduced with the option to set the Word process priority. This fix avoids a rare problem where a manually started Word instance connects to the Word background process created by the software.