Вопрос

I have site policy which close and delete site automatically after 1 year from date of creation if not extended. It will also send an email notification to owner 3 months before site deletion .

I want change mail message in email notification. How can I do that ?

Это было полезно?

Решение

The following article explains how to update the email on a policy. We've adapted this for SharePoint Online, but the article is specifically for on prem. http://blogs.technet.com/b/tothesharepoint/archive/2013/03/28/site-policy-in-sharepoint.aspx

Relevant code provided by the author in the article:

using Microsoft.SharePoint.Client;
using Microsoft.SharePoint.Client.InformationPolicy;
using System;

namespace SitePolicyEmailChanger
{
    class Program
    {
        static void Main(string[] args)
        {
            string siteCollectionUrl = "";
            string relativeSiteUrl = "";

            // Get the site and web info
            Console.WriteLine("Site Policy E-mail Changer");
            Console.WriteLine("Enter the Site Collection URL: ");
            siteCollectionUrl = Console.ReadLine();
            Console.WriteLine("Enter the relative Site URL: ");
            relativeSiteUrl = Console.ReadLine();

            // Return the currently applied Site Policy
            ClientContext context = new ClientContext(siteCollectionUrl);
            Site site = context.Site;
            Web web = site.OpenWeb(relativeSiteUrl);
            ProjectPolicy policy = ProjectPolicy.GetCurrentlyAppliedProjectPolicyOnWeb(context, web);
            context.Load(policy, 
                         p => p.Name, 
                         p => p.Description,
                         p => p.EmailSubject,
                         p => p.EmailBody, 
                         p => p.EmailBodyWithTeamMailbox);
            context.ExecuteQuery();

            // Display the current Site Policy properties and pause
            Console.WriteLine(String.Format("Policy Name is: {0}", policy.Name));
            Console.WriteLine(String.Format("Policy Description is: {0}", policy.Description));
            Console.WriteLine(String.Format("Policy E-mail Subject is: {0}", policy.EmailSubject));
            Console.WriteLine(String.Format("Policy E-mail Body is: {0}", policy.EmailBody));
            Console.WriteLine(String.Format("Policy E-mail Body (with Site Mailbox) is: {0}", policy.EmailBodyWithTeamMailbox));
            Console.WriteLine();
            Console.ReadLine();

            // Edit the Site Policy E-mail properties
            policy.EmailSubject = "Contoso Site Deletion Notice";
            policy.EmailBody = "The Contoso site <!--{SiteUrl}--> is set to expire on <!--{SiteDeleteDate}-->. If you have any questions or concerns, please contact your admin.";
            policy.EmailBodyWithTeamMailbox = "The Contoso site <!--{SiteUrl}--> associated with Site Mailbox <!--{TeamMailboxID}--> is set to expire on <!--{SiteDeleteDate}-->. If you have any questions or concerns, please contact your admin.";
            policy.SavePolicy();
            context.ExecuteQuery();

            // Refetch the edited Site Policy from the server
            policy = ProjectPolicy.GetCurrentlyAppliedProjectPolicyOnWeb(context, web);
            context.Load(policy,
                         p => p.Name,
                         p => p.Description,
                         p => p.EmailSubject,
                         p => p.EmailBody,
                         p => p.EmailBodyWithTeamMailbox);
            context.ExecuteQuery();

            // Display the new Site Policy properties and pause
            Console.WriteLine(String.Format("Policy Name is: {0}", policy.Name));
            Console.WriteLine(String.Format("Policy Description is: {0}", policy.Description));
            Console.WriteLine(String.Format("Policy E-mail Subject is NOW: {0}", policy.EmailSubject));
            Console.WriteLine(String.Format("Policy E-mail Body is NOW : {0}", policy.EmailBody));
            Console.WriteLine(String.Format("Policy E-mail Body (with Site Mailbox) is NOW: {0}", policy.EmailBodyWithTeamMailbox));
            Console.ReadLine();
        }
    }
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с sharepoint.stackexchange
scroll top