Updated December 16, 2021: According to Message center notification MC305463 (December 15), roaming signatures for Outlook for Windows have “been delayed while we work on further stabilization.” In other words, some bugs are present that Microsoft must squash before shipping the feature. Microsoft doesn’t give a new date when they expect this work to be done.
According to the roadmap item, the current roll-out date is predicted to be October 2022.
Figure 1: Microsoft 365 Roadmap item 60371
Companies often want to impose corporate branding and a common style to the email signatures applied by email clients to outbound messages. Managing signatures and making sure that the right signature is applied can be complicated, which is why so many companies like CodeTwo Software, Crossware, and Exclaimer develop and sell email signature management software.
The difficulties of dealing with Outlook for Windows signatures is described in a post explaining how to build and apply a HTML signature with PowerShell. Updating the system registry is often complicated and Outlook doesn’t make it easy. By comparison, updating the signatures used by OWA with PowerShell is more straightforward.
Roaming Signatures for Outlook Click to Run
One of the reasons why Outlook signatures cause management challenges is the need to update signatures on individual PCs. Microsoft is making things easier by introducing roaming signatures for Outlook. In other words, you can create a signature on a PC and that signature will be available on any PC you sign into. For now, the feature won’t work for Outlook for Mac and OWA will continue to use its own signatures, but you couldn’t rule out a plan that would see the same roaming signatures being used across all Outlook clients.
To make this arrangement work, the signature information is stored in Exchange Online user mailboxes and retrieved by the click-to-run version of Outlook (part of the Microsoft 365 enterprise desktop apps). In other words, the feature isn’t available on-premises because Exchange Server doesn’t store signatures in its mailboxes. Outlook 2016 and Outlook 2019 will continue to use the system registry to store signature settings (the RTF files containing the signatures are in the file system).
Signatures that aren’t associated with an Office 365 account won’t roam because they can’t be matched with an Exchange Online mailbox. These signatures, which might belong to people who use Outlook with non-Exchange servers, remain in place and available.
Synchronizing Signatures to Exchange Online
According to Microsoft 365 roadmap item 60371, Microsoft expects that roaming signatures will be available in June 2020. If all goes well, the June 2020 update for Outlook (monthly channel) will be the first version to support roaming signatures. After you install the update, Outlook will read existing signature information from the system registry and write it into the mailbox. The current setup of signature information in the system registry and signature files on disk remains to support offline working. Outlook on other PCs will pick up the updated signature the next time the user signs in.
Microsoft says that third-party add-ins will have to disable roaming signatures to continue to work. In the future, Microsoft expects to deliver an API to allow add-ins to work with roaming signatures.
Outlook doesn’t block users from updating signatures through its Options (Figure 2). Subsequent changes to the signature made in Outlook will be synchronized with Exchange Online. Each time Outlook starts, the client checks if the signature in the mailbox is newer than its copy and downloads the information if needed.
Figure 2: Updating a signature in Outlook for Windows
Disabling Roaming Signatures
It’s possible that an organization doesn’t want Outlook to use roaming signatures. In this scenario, you can disable the feature on individual workstations by updating this DWORD value in the registry:
Set the value to 1 to disable roaming signatures. If the value doesn’t exist or is set to 0, Outlook uses roaming signatures. Microsoft views the registry value as a holding measure until they do the work to allow third-party add-ins to interact more gracefully with roaming signatures. When that API is delivered, you can expect Microsoft to deprecate this setting.
ISV Reaction to Roaming Outlook Signatures
As expected, ISVs specializing in email signature software are wary about Microsoft’s announcement. If you’re interested in seeing how ISVs have reacted and the positioning of the features available in their products, you can read this assessment by CodeTwo Software. The case being advanced is what you’d expect: roaming signatures are only one part of a big piece of work needed to manage corporate signatures.
Welcome Change
Roaming signatures is a welcome update that people have wanted for a very long time. I doubt that the advent of the feature will affect the ISV market for email signature management products because the process of making sure that the right signature is used by the right person is more complicated than copying signatures between PCs. Corporate branding matters!
Need more information about using PowerShell to manage client settings? Look no further than the Office 365 for IT Pros eBook. We have a ton of information to offer on this topic.
6 Replies to “Microsoft Introduces Roaming Signatures for Outlook for Windows”
So, we have been deploying a corporate standard signature template to all our Intune managed Windows devices. We have been achieving this by simply copying the signature template files from a source to the user’s %appdata%\Microsoft\Signatures folder.
Any insight as to how to best achieve this with the new Roaming Signatures feature? Can the signature template be injected directly into Exchange Online mailboxes via PowerShell perhaps?
There’s a registry setting to disable roaming signatures. It’s in the article. The idea is that people who have a system for managing signatures will disable the roaming behavior until Microsoft has an API to allow signatures to be maintained in the same way that you can update OWA signatures with PowerShell.
It looks like this feature is finally rolling out, according to the Microsoft Roadmap. Have you heard any further details beyond what you wrote in the original article? We have users who access the Outlook client via Citrix, which doesn’t remember their signature from session to session. We’re wondering if they will soon be able to configure those signatures via OWA and then have those signatures populate and persist with each Citrix session.
{"id":null,"mode":"button","open_style":"in_modal","currency_code":"EUR","currency_symbol":"\u20ac","currency_type":"decimal","blank_flag_url":"https:\/\/office365itpros.com\/wp-content\/plugins\/tip-jar-wp\/\/assets\/images\/flags\/blank.gif","flag_sprite_url":"https:\/\/office365itpros.com\/wp-content\/plugins\/tip-jar-wp\/\/assets\/images\/flags\/flags.png","default_amount":100,"top_media_type":"featured_image","featured_image_url":"https:\/\/office365itpros.com\/wp-content\/uploads\/2022\/11\/cover-141x200.jpg","featured_embed":"","header_media":null,"file_download_attachment_data":null,"recurring_options_enabled":true,"recurring_options":{"never":{"selected":true,"after_output":"One time only"},"weekly":{"selected":false,"after_output":"Every week"},"monthly":{"selected":false,"after_output":"Every month"},"yearly":{"selected":false,"after_output":"Every year"}},"strings":{"current_user_email":"","current_user_name":"","link_text":"Virtual Tip Jar","complete_payment_button_error_text":"Check info and try again","payment_verb":"Pay","payment_request_label":"Office 365 for IT Pros","form_has_an_error":"Please check and fix the errors above","general_server_error":"Something isn't working right at the moment. Please try again.","form_title":"Office 365 for IT Pros","form_subtitle":null,"currency_search_text":"Country or Currency here","other_payment_option":"Other payment option","manage_payments_button_text":"Manage your payments","thank_you_message":"Thank you for supporting the work of Office 365 for IT Pros!","payment_confirmation_title":"Office 365 for IT Pros","receipt_title":"Your Receipt","print_receipt":"Print Receipt","email_receipt":"Email Receipt","email_receipt_sending":"Sending receipt...","email_receipt_success":"Email receipt successfully sent","email_receipt_failed":"Email receipt failed to send. Please try again.","receipt_payee":"Paid to","receipt_statement_descriptor":"This will show up on your statement as","receipt_date":"Date","receipt_transaction_id":"Transaction ID","receipt_transaction_amount":"Amount","refund_payer":"Refund from","login":"Log in to manage your payments","manage_payments":"Manage Payments","transactions_title":"Your Transactions","transaction_title":"Transaction Receipt","transaction_period":"Plan Period","arrangements_title":"Your Plans","arrangement_title":"Manage Plan","arrangement_details":"Plan Details","arrangement_id_title":"Plan ID","arrangement_payment_method_title":"Payment Method","arrangement_amount_title":"Plan Amount","arrangement_renewal_title":"Next renewal date","arrangement_action_cancel":"Cancel Plan","arrangement_action_cant_cancel":"Cancelling is currently not available.","arrangement_action_cancel_double":"Are you sure you'd like to cancel?","arrangement_cancelling":"Cancelling Plan...","arrangement_cancelled":"Plan Cancelled","arrangement_failed_to_cancel":"Failed to cancel plan","back_to_plans":"\u2190 Back to Plans","update_payment_method_verb":"Update","sca_auth_description":"Your have a pending renewal payment which requires authorization.","sca_auth_verb":"Authorize renewal payment","sca_authing_verb":"Authorizing payment","sca_authed_verb":"Payment successfully authorized!","sca_auth_failed":"Unable to authorize! Please try again.","login_button_text":"Log in","login_form_has_an_error":"Please check and fix the errors above","uppercase_search":"Search","lowercase_search":"search","uppercase_page":"Page","lowercase_page":"page","uppercase_items":"Items","lowercase_items":"items","uppercase_per":"Per","lowercase_per":"per","uppercase_of":"Of","lowercase_of":"of","back":"Back to plans","zip_code_placeholder":"Zip\/Postal Code","download_file_button_text":"Download File","input_field_instructions":{"tip_amount":{"placeholder_text":"How much would you like to tip?","initial":{"instruction_type":"normal","instruction_message":"How much would you like to tip? Choose any currency."},"empty":{"instruction_type":"error","instruction_message":"How much would you like to tip? Choose any currency."},"invalid_curency":{"instruction_type":"error","instruction_message":"Please choose a valid currency."}},"recurring":{"placeholder_text":"Recurring","initial":{"instruction_type":"normal","instruction_message":"How often would you like to give this?"},"success":{"instruction_type":"success","instruction_message":"How often would you like to give this?"},"empty":{"instruction_type":"error","instruction_message":"How often would you like to give this?"}},"name":{"placeholder_text":"Name on Credit Card","initial":{"instruction_type":"normal","instruction_message":"Enter the name on your card."},"success":{"instruction_type":"success","instruction_message":"Enter the name on your card."},"empty":{"instruction_type":"error","instruction_message":"Please enter the name on your card."}},"privacy_policy":{"terms_title":"Terms and conditions","terms_body":null,"terms_show_text":"View Terms","terms_hide_text":"Hide Terms","initial":{"instruction_type":"normal","instruction_message":"I agree to the terms."},"unchecked":{"instruction_type":"error","instruction_message":"Please agree to the terms."},"checked":{"instruction_type":"success","instruction_message":"I agree to the terms."}},"email":{"placeholder_text":"Your email address","initial":{"instruction_type":"normal","instruction_message":"Enter your email address"},"success":{"instruction_type":"success","instruction_message":"Enter your email address"},"blank":{"instruction_type":"error","instruction_message":"Enter your email address"},"not_an_email_address":{"instruction_type":"error","instruction_message":"Make sure you have entered a valid email address"}},"note_with_tip":{"placeholder_text":"Your note here...","initial":{"instruction_type":"normal","instruction_message":"Attach a note to your tip (optional)"},"empty":{"instruction_type":"normal","instruction_message":"Attach a note to your tip (optional)"},"not_empty_initial":{"instruction_type":"normal","instruction_message":"Attach a note to your tip (optional)"},"saving":{"instruction_type":"normal","instruction_message":"Saving note..."},"success":{"instruction_type":"success","instruction_message":"Note successfully saved!"},"error":{"instruction_type":"error","instruction_message":"Unable to save note note at this time. Please try again."}},"email_for_login_code":{"placeholder_text":"Your email address","initial":{"instruction_type":"normal","instruction_message":"Enter your email to log in."},"success":{"instruction_type":"success","instruction_message":"Enter your email to log in."},"blank":{"instruction_type":"error","instruction_message":"Enter your email to log in."},"empty":{"instruction_type":"error","instruction_message":"Enter your email to log in."}},"login_code":{"initial":{"instruction_type":"normal","instruction_message":"Check your email and enter the login code."},"success":{"instruction_type":"success","instruction_message":"Check your email and enter the login code."},"blank":{"instruction_type":"error","instruction_message":"Check your email and enter the login code."},"empty":{"instruction_type":"error","instruction_message":"Check your email and enter the login code."}},"stripe_all_in_one":{"initial":{"instruction_type":"normal","instruction_message":"Enter your credit card details here."},"empty":{"instruction_type":"error","instruction_message":"Enter your credit card details here."},"success":{"instruction_type":"normal","instruction_message":"Enter your credit card details here."},"invalid_number":{"instruction_type":"error","instruction_message":"The card number is not a valid credit card number."},"invalid_expiry_month":{"instruction_type":"error","instruction_message":"The card's expiration month is invalid."},"invalid_expiry_year":{"instruction_type":"error","instruction_message":"The card's expiration year is invalid."},"invalid_cvc":{"instruction_type":"error","instruction_message":"The card's security code is invalid."},"incorrect_number":{"instruction_type":"error","instruction_message":"The card number is incorrect."},"incomplete_number":{"instruction_type":"error","instruction_message":"The card number is incomplete."},"incomplete_cvc":{"instruction_type":"error","instruction_message":"The card's security code is incomplete."},"incomplete_expiry":{"instruction_type":"error","instruction_message":"The card's expiration date is incomplete."},"incomplete_zip":{"instruction_type":"error","instruction_message":"The card's zip code is incomplete."},"expired_card":{"instruction_type":"error","instruction_message":"The card has expired."},"incorrect_cvc":{"instruction_type":"error","instruction_message":"The card's security code is incorrect."},"incorrect_zip":{"instruction_type":"error","instruction_message":"The card's zip code failed validation."},"invalid_expiry_year_past":{"instruction_type":"error","instruction_message":"The card's expiration year is in the past"},"card_declined":{"instruction_type":"error","instruction_message":"The card was declined."},"missing":{"instruction_type":"error","instruction_message":"There is no card on a customer that is being charged."},"processing_error":{"instruction_type":"error","instruction_message":"An error occurred while processing the card."},"invalid_request_error":{"instruction_type":"error","instruction_message":"Unable to process this payment, please try again or use alternative method."},"invalid_sofort_country":{"instruction_type":"error","instruction_message":"The billing country is not accepted by SOFORT. Please try another country."}}}},"fetched_oembed_html":false}
So, we have been deploying a corporate standard signature template to all our Intune managed Windows devices. We have been achieving this by simply copying the signature template files from a source to the user’s %appdata%\Microsoft\Signatures folder.
Any insight as to how to best achieve this with the new Roaming Signatures feature? Can the signature template be injected directly into Exchange Online mailboxes via PowerShell perhaps?
There’s a registry setting to disable roaming signatures. It’s in the article. The idea is that people who have a system for managing signatures will disable the roaming behavior until Microsoft has an API to allow signatures to be maintained in the same way that you can update OWA signatures with PowerShell.
It looks like this feature is finally rolling out, according to the Microsoft Roadmap. Have you heard any further details beyond what you wrote in the original article? We have users who access the Outlook client via Citrix, which doesn’t remember their signature from session to session. We’re wondering if they will soon be able to configure those signatures via OWA and then have those signatures populate and persist with each Citrix session.
I haven’t looked at the feature since I originally looked at it, sorry!