• 字段,如项目名称字段中,将被截断到的电子邮件通知中的 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. double保持精度,防止小数点后数字的丢失的小方法

    一般情况下,输入带小数点的字面值,编译器会把它解析成double 类型. 例如:一个字面值被直接放到代码中,由于带小数点所以,默认值为double类型   输出结果是:1.12345678912345 ...

  2. .NET 三层架构的简单规划

    今天心血来潮简单看了下petshop4.0的源代码,他就是用三层架构来实现的.现在简单的做下总结. 首先我们先看下petshop的三层架构. 1 WEB 表示层 2 Model 业务实体 3 BLL ...

  3. Linux - 终端语言设置

    查看当前终端用户的语言设置 locale - get locale-specific information : locale |grep LANG 改变当前终端用户的语言设置(临时生效) 中文UTF ...

  4. AngularJS in Action读书笔记2——view和controller的那些事儿

    今天我们来818<angularjs in action>的第三章controller和view. 1.Big Picture概览图 View是angularjs编译html后呈现出来的, ...

  5. 移动设计必备:iPhone 5S PSD 矢量原型免费下载

    正如预期的那样,苹果公司最近发布了 iPhone 5S——其最新的旗舰级智能手机.新发布的 iPhone 5s,搭载了 iOS 7,看上去和 iPhone 5 几乎一模一样的,有岩石灰.金色以及银色三 ...

  6. 使用CSS3对链接颜色与下划线进行优化

    效果: 代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="U ...

  7. ASP.NET Core实现OAuth2.0的ResourceOwnerPassword和ClientCredentials模式

    前言 开发授权服务框架一般使用OAuth2.0授权框架,而开发Webapi的授权更应该使用OAuth2.0授权标准,OAuth2.0授权框架文档说明参考:https://tools.ietf.org/ ...

  8. mysql常用函数参考

    mysql常用函数参考   对于针对字符串位置的操作,第一个位置被标记为1. ASCII(str) 返回字符串str的最左面字符的ASCII代码值.如果str是空字符串,返回0.如果str是NULL, ...

  9. 【Java每日一题】20161025

    20161024问题解析请点击今日问题下方的"[Java每日一题]20161025"查看 package Oct2016; import static java.lang.Math ...

  10. sublime Text-Theme

    一.Spacegray主题 1>安装Spacegray主题按下Ctrl+Shift+P,输入install,选择Package Control: Install Package,然后输入Spac ...