当前位置: 代码迷 >> SharePoint >> Sharepoint 2013 创设TimeJob 自动发送邮件
  详细解决方案

Sharepoint 2013 创设TimeJob 自动发送邮件

热度:354   发布时间:2016-05-02 06:53:01.0
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,                       "[email protected]", "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();        }    }

  

 

  相关解决方案