How-to: enable email notification

Important

Versions of the Microsoft Rights Management Service SDK released prior to March 2020 are deprecated; applications using earlier versions must be updated to use the March 2020 release. For full details, see the deprecation notice.

No further enhancements are planned for the Microsoft Rights Management Service SDK. We strongly recommend adoption of the Microsoft Information Protection SDK for classification, labeling, and protection services.

Email notification allows for a protected content owner to be notified when his or her content is accessed.

To setup your email notification for a given license, use IpcSetLicenseProperty with the property type parameter, dwPropID, as IPC_LI_APP_SPECIFIC_DATA and the application data fields formatted as an IPC_NAME_VALUE_LIST.

C++:

int numDataPairs = 3;

IPC_NAME_VALUE propertyValuePairs [numDataPairs];

// lcid field set to 0 causes the default lcid to be used

propertyValuePairs[0] = {"MS.Conetent.Name", 0, "FinancialReport.docx"};
propertyValuePairs[1] = {"MS.Notify.Enabled",0 , "true"};
propertyValuePairs[2] = {"MS.Notify.Culture",0 , "en-US"};

IPC_NAME_VALUE_LIST emailNotificationAppData = {numDataPairs, propertyValuePairs};

result = IpcSetLicenseProperty(licenseHandle, FALSE, IPC_LI_APP_SPECIFIC_DATA, emailNotificationAppData);

The following table contains the application data fields, property name and value pairs, for RMS email notification.

Property Name Data Type Example Value Notes
MS.Content.Name string “FinancialReport.docx” This is an identifier associated with the protected content.

For protected files this value should be the name of the file without any path information.

For other types of content such as an email message it might be the subject of the email or it might be empty.
MS.Notify.Enabled string “true” | “false” If this value is set to “true” a notification email will be sent to the owner of the publishing license when someone attempts to use it to obtain an end user license.
MS.Notify.Culture string “en-US” Source: System.Globalization.CultureInfo.CurrentUICulture.Name

This value is used to determine the localized language of the notification email and the date/time and number formatting that should be used in the email message.

It should be set based on user settings of the machine that the publish license is created on, or based on the preferred culture of the owner of the publish license.
MS.Notify.TZID string “Pacific Standard Time” Source: TimeZoneInfo.Local.Id - Windows time zone ID.

This value is the Microsoft Windows OS time zone identifier describing a particular time zone and its characteristics.
MS.Notify.TZO string “-480” This is the publish license owner’s time zone offset in terms of minutes from UTC time.

If a valid TZID value is provided the offset of the time zone specified by it will be used and this value will be ignored.

This value will more than likely be used by non-windows based publishing platforms that do not have access to the list of Windows OS time zone ID values.

If a TZID value is not provided this value will be used to calculate the time offset in notification messages, and the TZSN will be used (regardless of the time zone value) to indicate the name of the time zone. This will result time zone being fixed and not updating for daylight savings when it is applicable.

For example:

If TXID is blank and TZ0 is set to “-420” and the TZSN is set to “Pacific Daylight Time” all values shown in the notification email will be adjusted to "Pacific Daylight Time” and displayed as such even if daylight savings is no longer in affect currently.

On the other hand if a TZID is supplied along with both TZSN and TZDN, then the times specified in the notification email will be adjusted and displayed based on whether the date and time should be displayed in Daylight mode or Standard mode.
MS.Notify.TZSN string “Pacific Standard Time” Source: TimeZoneInfo.Local.StandardName - Standard Time Zone name.

This should the localized name of the time zone’s standard time zone name.
MS.Notify.TZDN string “Pacific Daylight Time” Source: TimeZoneInfo.Local.DaylightName - Daylight Time Zone name.

This should be the localized name of the time zone’s daylight savings name. It can be the same as the standard name if the time zone does not support daylight savings.