• 字段,如项目名称字段中,将被截断到的电子邮件通知中的 70 个字符。要解决 70 个字符的限制,请使用"更多信息"一节中的介绍的方法。
  • 要嵌入电子邮件通知中的其他内容。
  • 您想要更改的布局或外观的电子邮件通知。

此方法创建一个类,从IAlertNotificationHandler接口继承,并使用OnNotification方法。此方法可以截获传出的电子邮件通知,并对其进行修改。您可以访问该警报的属性中的大多数。通过使用 XML 分析和 SharePoint 对象模型的代码,您可以提取必须具有修改电子邮件警报的所有信息。然后,您可以生成 HTML 存根以显示根据您的要求的电子邮件通知。此外,您可以通过使用 SharePoint 的 SendMail 功能发送电子邮件通知。
这些步骤包括输出以接近于默认通知模板的电子邮件格式设置的示例代码。您可以修改此示例代码中的 HTML,以自定义生成的电子邮件通知。

  1. 创建一个项目,从IAlertNotificationHandler接口继承。在项目中包括 Microsoft.SharePoint 命名空间和 Microsoft.SharePoint.Utilities 的命名空间。
    使用以下代码:

    //===================code start=====================
    public class Class1:IAlertNotifyHandler
    { #region IAlertNotifyHandler Members public bool OnNotification(SPAlertHandlerParams ahp)
    {
    SPSite site = null;
    SPWeb web = null; try
    {
    site = new SPSite(ahp.siteUrl+ahp.webUrl);
    web = site.OpenWeb();
    SPList list=web.Lists[ahp.a.ListID];
    SPListItem item = list.GetItemById(ahp.eventData[0].itemId) ; string FullPath=HttpUtility.UrlPathEncode(ahp.siteUrl+"/"+ahp.webUrl+"/"+list.Title+"/"+item.Name);
    string ListPath = HttpUtility.UrlPathEncode(ahp.siteUrl + "/" + ahp.webUrl + "/" + list.Title);
    string webPath=HttpUtility.UrlPathEncode(ahp.siteUrl+"/"+ahp.webUrl); string build = "";
    if (ahp.eventData[0].eventType==1)
    eventType="Added";
    else if(ahp.eventData[0].eventType==2)
    eventType="Changed";
    else if(ahp.eventData[0].eventType==3)
    eventType="Deleted"; build = "<style type=\"text/css\">.style1 { font-size: small; border: 1px solid #000000;"+
    "background-color: #DEE7FE;}.style2 { border: 1px solid #000000;}</style></head>"+
    "<p><strong>"+ item.Name.ToString() +"</strong> has been "+eventType +"</p>"+
    "<table style=\"width: 100%\" class=\"style2\"><tr><td style=\"width: 25%\" class=\"style1\">"+
    "<a href="+ webPath +"/_layouts/mysubs.aspx>Modify my Settings</a></td>"+
    "<td style=\"width: 25%\" class=\"style1\"> <a href="+ FullPath +">View "+item.Name+"</a></td>"+
    "<td style=\"width: 25%\" class=\"style1\"><a href=" + ListPath + ">View " + list.Title + "</a></td>" +
    " </tr></table>";
    string subject=list.Title.ToString() ;
    SPUtility.SendEmail(web,true , false, ahp.headers["to"].ToString(), subject,build);
    return false;
    }
    catch (System.Exception ex)
    {
    return false;
    }
    finally
    {
    if (web != null)
    web.Dispose();
    if (site != null)
    site.Dispose();
    } } #endregion
    }
    //===================code end=====================

  2. 强签名的.dll 文件添加到全局程序集缓存 (GAC) 中。您可以将该程序集拖到程序集文件夹。或者,您可以使用 GACUtil 工具来注册.dll 文件。

    有关详细信息,请访问下面的 MSDN Web 站点。

    有关详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:

    315682

    () http://support.microsoft.com/kb/315682/

    如何将程序集安装到全局程序集缓存在 Visual Basic.NET 或 Visual Basic 2005年中

  3. 请在下面的文件夹中的 alertTemplates.xml 文件的副本:

    C:\Program 必须使用 Shared\Web 服务器 Extensions\12\Template\Xml

    命名为 CustomAlertTemplates.xml,该新文件,然后保存该文件。

    注意不要直接修改 alertTemplates.xml 文件。直接修改此文件不受支持。

  4. 编辑文件和搜索的关键字属性。在属性块中添加以下行:

    <NotificationHandlerAssembly>AlertHandler, Version=1.0.0.0, Culture=neutral, PublicKeyToken=d59ecf2a3bd66904</NotificationHandlerAssembly>
    <NotificationHandlerClassName>AlertHandler.Class1</NotificationHandlerClassName>
    <NotificationHandlerProperties></NotificationHandlerProperties>

    存根 (stub) 应类似于这现在:

            <Properties>
    <ImmediateNotificationExcludedFields>ID;Author;Editor;Modified_x0020_By;Created_x0020_By;_UIVersionString;ContentType;TaskGroup;IsCurrent;Attachments;NumComments;</ImmediateNotificationExcludedFields>
    <DigestNotificationExcludedFields>ID;Author;Editor;Modified_x0020_By;Created_x0020_By;_UIVersionString;ContentType;TaskGroup;IsCurrent;Attachments;NumComments;</DigestNotificationExcludedFields>
    <NotificationHandlerAssembly>AlertHandler, Version=1.0.0.0, Culture=neutral, PublicKeyToken=d59ecf2a3bd66904</NotificationHandlerAssembly>
    <NotificationHandlerClassName>AlertHandler.Class1</NotificationHandlerClassName>
    <NotificationHandlerProperties></NotificationHandlerProperties>
    </Properties>

    要在警报的模板文件中每个警报的模板部分中包括此 XML 存根 (stub)。

  5. 在命令提示符下,更改 C:\Program 必须使用 Shared\web 的服务器 extensions\12\BIN 目录。然后,运行以下命令:

    stsadm-o updatealerttemplates-文件名"是 Files\Common Files\Microsoft Shared\Web 服务器 Extensions\12\TEMPLATE\XML\customalerttemplates.xml"-url your_sharepoint_site url

  6. 运行以下命令:

    stsadm-o setproperty-pn 作业-立即-通知-pv"每隔 1 分钟"

    此命令指定 SharePoint 服务器检查都要立即发送的通知的频率。以分钟为单位指定的值。对于此测试,将频率设置为 1 分钟。

    有关详细信息,请访问下面的 Microsoft 网站:

    http://technet2.microsoft.com/windowsserver/WSS/en/library/0eb072fe-8321-483b-9d1e-3412e3f42a481033.mspx?mfr=true

    (http://technet2.microsoft.com/windowsserver/WSS/en/library/0eb072fe-8321-483b-9d1e-3412e3f42a481033.mspx?mfr=true)

  7. 请确保您拥有 SharePoint 配置传出电子邮件。有关如何配置传出电子邮件的详细信息,请访问下面的 Microsoft 网站:

    http://technet2.microsoft.com/windowsserver/WSS/en/library/91570494-09ba-4537-904b-c61a6268d6bc1033.mspx?mfr=true

    (http://technet2.microsoft.com/windowsserver/WSS/en/library/91570494-09ba-4537-904b-c61a6268d6bc1033.mspx?mfr=true)

  8. 如果测试使用文档库,请确保您有打开的文档库的通知。
  9. 运行以下命令:
    • iisreset
    • 服务
  10. 在服务 MMC 管理单元中,重新启动 Windows SharePoint Services 定时服务。

完成这些步骤之后,应配置自定义电子邮件通知的处理程序。创建一个新警报后,您将收到已更新的自定义电子邮件警报。

如何在SharePoint2010中创建自定义电子邮件警报处理程序的更多相关文章

  1. 如何在VMware中创建虚拟机

    今天给大家分享如何在VMware中创建虚拟机,具体的教程如下.在这里小编提前下载了Ubuntu14.04桌面系统,为后面在虚拟机中安装Ubuntu14.04桌面系统做准备. 1.从官网上或者直接百度上 ...

  2. 详解如何在Laravel中增加自定义全局函数

    http://www.php.cn/php-weizijiaocheng-383928.html 如何在Laravel中增加自定义全局函数?在我们的应用里经常会有一些全局都可能会用的函数,我们应该怎么 ...

  3. Android DevArt5:如何在Android中创建多线程?

    本篇内容: 如何在Android中创建多进程?查看进程的三种方式有哪些? 多进程模式的运行机制?- 演示了多进程出现问题中的两种情况: 静态成员失效 Application多次创建 IPC基础概念介绍 ...

  4. 在Oracle电子商务套件版本12.2中创建自定义应用程序(文档ID 1577707.1)

    在本文档中 本笔记介绍了在Oracle电子商务套件版本12.2中创建自定义应用程序所需的基本步骤.如果您要创建新表单,报告等,则需要自定义应用程序.它们允许您将自定义编写的文件与Oracle电子商务套 ...

  5. 如何在sharepoint2010中配置Google Anlytics 分析服务

      简介 Google Analytics(分析)不仅可以帮助您衡量销售与转化情况,而且能为您提供新鲜的深入信息,帮助您了解访问者如何使用您的网站,他们如何到达您的网站,以及您可以如何吸引他们不断回访 ...

  6. 【翻译】在Ext JS和Sencha Touch中创建自定义布局

    原文:Creating Custom Layouts in Ext JS and Sencha Touch 布局系统是Sencha框架中最强大和最独特的一部分.布局会处理应用程序中每个组件的大小和位置 ...

  7. PS网页设计教程XXVI——如何在PS中创建一个专业的网页布局

    作为编码者,美工基础是偏弱的.我们可以参考一些成熟的网页PS教程,提高自身的设计能力.套用一句话,“熟读唐诗三百首,不会作诗也会吟”. 本系列的教程来源于网上的PS教程,都是国外的,全英文的.本人尝试 ...

  8. 在 ASP.NET MVC 中创建自定义 HtmlHelper

    在ASP.NET MVC应用程序的开发中,我们常碰到类似Html.Label或Html.TextBox这样的代码,它将在网页上产生一个label或input标记.这些HtmlHelper的扩展方法有些 ...

  9. Javascript 中创建自定义对象的方法(设计模式)

    Javascript 中创建对象,可以有很多种方法. Object构造函数/对象字面量: 抛开设计模式不谈,使用最基本的方法,就是先调用Object构造函数创建一个对象,然后给对象添加属性. var ...

随机推荐

  1. AngularJS入门心得1——directive和controller如何通信

    粗略地翻了一遍<JavaScript DOM编程艺术>,就以为可以接过AngularJS的一招半式,一个星期过去了,我发现自己还是Too Young,Too Simple!(刚打照面的时候 ...

  2. Java学习笔记之使用反射+泛型构建通用DAO

    PS:最近简单的学了学后台Servlet+JSP.也就只能学到这里了.没那么多精力去学SSH了,毕竟Android还有很多东西都没学完.. 学习内容: 1.如何使用反射+泛型构建通用DAO. 1.使用 ...

  3. [UWP]涨姿势UWP源码——极简的RSS阅读器

    涨姿势UWP,一个开源的RSS阅读器,一个纯粹的项目,一个有道德的APP,一个脱离了低级趣味的作者,一些有益于人民的代码.骚年,还等什么,来涨点姿势吧! 该项目代码可能会引起部分人群的不适,敏感人群请 ...

  4. JS魔法堂:函数节流(throttle)与函数去抖(debounce)

    一.前言 以下场景往往由于事件频繁被触发,因而频繁执行DOM操作.资源加载等重行为,导致UI停顿甚至浏览器崩溃. 1. window对象的resize.scroll事件 2. 拖拽时的mousemov ...

  5. Android事件分发机制理解

    预备知识 触摸事件 : 安卓中把触摸事件封装成了一个类MotionEvent,用户的一次点击.触摸或者滑动都会产生一系列的MotionEvent 这个类的内容很简单,就两个东西:事件类型+坐标xy 事 ...

  6. Android Studio快捷键每日一练(1)

    原文地址:http://www.developerphil.com/android-studio-tips-of-the-day-roundup-1/ 1.高亮显示相同的字符串 苹果:Cmd+shif ...

  7. 轻松实现localStorage本地存储

    相信大家都知道HTML5提供了localStorage和sessionStorage两个新功能,基于这两个功能我们可以实现web资源的离线和会话存储,如果你现在还在用Cookie来临时存储网络资源的话 ...

  8. 手机端布局 - rem计算

    功能说明:以一个640px的宽度为基准,最小不低于320px,当大于640px时,让其在页面中居中. 如果正处于640 - 320之中的,都按照js进行等比例的缩放. 这里我们规定1rem = 100 ...

  9. ASP.NET MVC系列:为视图添加查询功能

    首先,在MoviesController里添加一个查询方法,代码如下 public ActionResult SearchIndex(string title) { //查询数据库中的电影表 var ...

  10. 从C#到Objective-C,循序渐进学习苹果开发(2)--Objective-C和C#的差异

    本随笔系列主要介绍从一个Windows平台从事C#开发到Mac平台开发苹果开发的一系列感想和体验历程,本系列文章是在起步阶段逐步积累的,希望带给大家更好,更真实的转换历程体验. 在上篇<从C#到 ...