• Sharepoint 2013 创建TimeJob 自动发送邮件


    创建Time Job

    继承继承SPJobDefinition 并且实现里边的 Execute方法

    部署

    可以手动部署,把程序集放到GAC,手动激活feature

    如果部署的时候说feature已经存在,在feature的XML里面添加代码 AlwaysForceInstall="TRUE",如下

    <?xml version="1.0" encoding="utf-8" ?>
    <Feature xmlns="http://schemas.microsoft.com/sharepoint/"
             AlwaysForceInstall="TRUE"
             Title="Time Job for Find Document" 
             Description="Custom Feature for Time job">
    </Feature>

    安装

    写到Feature,添加或者删除

    更新

    需要重新启动Windows SharePoint Services Timer 服务

    调试

    把OWSTIMER.EXE添加到进程

    定义Timejob代码

    引用

    using Microsoft.SharePoint.Administration;

    using Microsoft.SharePoint.Utilities;

    public class FindDocument:SPJobDefinition
        {
            public FindDocument()
                : base()
            {
            }
    
            public FindDocument(string jobName, SPWebApplication webapp)
                : base(jobName, webapp, null, SPJobLockType.ContentDatabase)
            {
                this.Title = Constants.FDJobName;
            }
    
            public override void Execute(Guid targetInstanceId)
            {
                SPWebApplication webapp = this.Parent as SPWebApplication;
                SPContentDatabase contentDb = webapp.ContentDatabases[targetInstanceId];
    
                string webUrl = this.Properties["WebUrl"].ToString();
                using (SPSite site = new SPSite(webUrl))
                {
                    using (SPWeb web = site.OpenWeb())
                    {
                        //Send mail to somebody
                        SPUtility.SendEmail(web, false, false,
                           "xxx@xxx.com", "E-mail title",
                           "E-mail body");
                        //udpate list
                        SPList list = web.Lists["Test"];
                        SPListItem item = list.Items[0];
                        item["Title"] = "Date " + DateTime.Now.ToString();
                        item.SystemUpdate();
                    }
                }
            }
    
            //If active feature error, please active feature manually.
            protected override bool HasAdditionalUpdateAccess()
            {
                return true;
            }
        }
    

    安装卸载Timejob代码

    引用

    using Microsoft.SharePoint.Administration;

    public class TimeJobFeatureEventReceiver : SPFeatureReceiver
        {
            // Uncomment the method below to handle the event raised after a feature has been activated.
            const string JobName = Constants.FDJobName;
            public override void FeatureActivated(SPFeatureReceiverProperties properties)
            {
                SPWeb web = properties.Feature.Parent as SPWeb;
                DeleteJob(web); // Delete Job if already Exists
                CreateJob(web); // Create new Job
            }
    
    
            public override void FeatureDeactivating(SPFeatureReceiverProperties properties)
            {
                DeleteJob(properties.Feature.Parent as SPWeb); // Delete the Job
            }
    
            private static void DeleteJob(SPWeb web)
            {
                foreach (SPJobDefinition job in web.Site.WebApplication.JobDefinitions)
                    if (job.Name == JobName)
                        job.Delete();
            }
    
            private static void CreateJob(SPWeb web)
            {
    
                TimeJob.Jobs.FindDocument job = new TimeJob.Jobs.FindDocument(JobName, web.Site.WebApplication);
                job.Properties.Add("WebUrl", web.Url);
                SPDailySchedule schedule = new SPDailySchedule();
                schedule.BeginHour = 16;
                schedule.BeginMinute = 00;
                schedule.EndHour = 16;
                schedule.EndMinute = 30;
                job.Schedule = schedule;
                job.Update();
            }
        }
    

      

  • 相关阅读:
    PHP深入浅出之命名空间(Namespace)的使用详解
    函数func_get_args详解
    验证码封装类
    PHP中SESSION自定义会话管理器
    网页开发常见问题总结
    mysql远程连接只显示部分数据库问题
    认识和学习bash
    IPv6地址格式示例及IPv6与IPv4的区别分析
    用HTTP核心模块配置一个静态Web服务器
    Nginx服务项的基本配置
  • 原文地址:https://www.cnblogs.com/batter152/p/4705316.html
Copyright © 2020-2023  润新知