Artigo: 948321 - Última revisão: segunda-feira, 20 de Outubro de 2008 - Revisão: 2.0

Como criar um processador de alertas de correio electrónico personalizado no Microsoft Office SharePoint Server

Dica do SistemaEste artigo aplica-se a um sistema operativo diferente do que está a utilizar. Foi desactivado o conteúdo do artigo, que pode não ser relevante para si.
Expandir tudo | Reduzir tudo

Sumário

Este artigo descreve como criar um processador de alertas de correio electrónico personalizado no Microsoft Office SharePoint Server 2007. O método descrito neste artigo utiliza a interface IAlertNotificationHandler para interceptar o alerta de correio electrónico e modificá-lo.

Poderá criar um processador de alerta de correio electrónico personalizado no Microsoft Office SharePoint Server 2007 dos seguintes cenários:
  • Campos, como o campo ItemName , são truncados para 70 caracteres o alerta de correio electrónico. Para contornar o limite de 70 caracteres, utilize o método descrito na secção "Mais informação".
  • Pretende incorporar conteúdo adicional no alerta por correio electrónico.
  • Pretende alterar o esquema ou o aspecto do alerta de correio electrónico.

Mais Informação

Este método cria uma classe que herda a interface IAlertNotificationHandler e que utilize o método OnNotification . Este método permite-lhe interceptar os alertas de correio electrónico a enviar e modificá-los. Pode aceder a maioria das propriedades do alerta. Através da utilização de análise de XML e código de modelo de objecto do SharePoint, pode extrair todas as informações necessárias para modificar o alerta de correio electrónico. Em seguida, é possível criar o stub HTML para apresentar o alerta de correio electrónico com base na suas necessidades. Além disso, pode enviar o alerta de correio electrónico utilizando a funcionalidade de SendMail ?s SharePoint.

Estes passos incluem código de exemplo formata a saída para se assemelhar-se as mensagens de correio electrónico de alerta modelo predefinido. Pode modificar o HTML neste código de exemplo para personalizar o alerta de correio electrónico resultante.
  1. Crie um projecto de classe que herda a interface IAlertNotificationHandler . Inclua o espaço de nomes do Microsoft.SharePoint e o espaço de nomes Microsoft.SharePoint.Utilities no projecto.

    Use the following code:
    //===================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. Adicione um ficheiro .dll vivamente assinado a cache de assemblagem global (GAC). Pode arrastar a assemblagem para a pasta de assemblagem. Ou, pode utilizar a ferramenta GACUtil para registar o ficheiro .dll.

    Para obter mais informações, visite os seguintes Web sites da MSDN.Para obter mais informações, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
    315682  (http://support.microsoft.com/kb/315682/ ) Como instalar uma assemblagem na cache de assemblagem global no Visual Basic .NET ou no Visual Basic 2005
  3. Efectue uma cópia do ficheiro alertTemplates.xml que se encontra na seguinte pasta:
    C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\12\Template\Xml
    Atribua um nome este novo ficheiro CustomAlertTemplates.xml e, em seguida, guarde o ficheiro.

    Nota Não modifique o ficheiro alertTemplates.xml directamente. Modificar directamente o ficheiro não é suportada.
  4. Edite o ficheiro e procurar as propriedades de palavra-chave. Adicione as linhas seguintes ao bloco de propriedades:
    <NotificationHandlerAssembly>AlertHandler, Version=1.0.0.0, Culture=neutral, PublicKeyToken=d59ecf2a3bd66904</NotificationHandlerAssembly>
              <NotificationHandlerClassName>AlertHandler.Class1</NotificationHandlerClassName>
        <NotificationHandlerProperties></NotificationHandlerProperties>
    o stub deve semelhantes isto agora:
            <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>
    
    incluir este stub XML em cada secção do modelo de alerta que pretende adicionar o ficheiro de modelo de alerta.
  5. Numa linha de comandos, mude para o directório de extensions\12\BIN de servidor C:\Program Files\Common Files\Microsoft Shared\Web. Em seguida, execute o seguinte comando:
    stsadm -o updatealerttemplates - nome de ficheiro "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\12\TEMPLATE\XML\customalerttemplates.xml" - url your_sharepoint_site url
  6. Execute o seguinte comando:
    stsadm -o setproperty - pn tarefa--alertas imediatos-va "minutos 1"
    Este comando Especifica a frequência SharePoint Server verifica de alertas que estão a ser enviada de imediato. O valor é especificado em minutos. Para este teste, a frequência está definida para 1 minuto.

    Para mais informações, visite o seguinte Web site da 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. Certifique-se que tem SharePoint configurado para enviar mensagens de correio electrónico. Para mais informações sobre como configurar mensagens de correio electrónico, visite o seguinte Web site da 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. Se estiver a utilizar a biblioteca de documentos para o teste, certifique-se de que que alertas para a biblioteca activada.
  9. Execute os seguintes comandos:
    • iisreset
    • Services.msc
  10. No snap-in Serviços da MMC, reinicie o serviço de temporizador do Windows SharePoint Services.
Depois de concluir estes passos, o processador de alertas de correio electrónico personalizado deve ser configurado. Depois de criar um novo alerta, deverá receber o alerta de correio electrónico personalizado actualizado.

A informação contida neste artigo aplica-se a:
  • Microsoft Office SharePoint Server 2007
  • Microsoft Office SharePoint Server 2007 for Search (Enterprise Edition)
  • Microsoft Office SharePoint Server 2007 for Search (Standard Edition)
Palavras-chave: 
kbmt kbhowto kbexpertiseadvanced kbinfo KB948321 KbMtpt
Tradução automáticaTradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 948321  (http://support.microsoft.com/kb/948321/en-us/ )