ID do artigo: 948321 - Última revisão: segunda-feira, 20 de outubro de 2008 - Revisão: 2.0

Como criar um manipulador de alerta de email personalizada 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 | Recolher tudo

Sumário

Este artigo descreve como criar um manipulador de alerta de email personalizada no Microsoft Office SharePoint Server 2007. O método descrito neste artigo usa a interface IAlertNotificationHandler para interceptar o alerta de email e para modificá-lo.

Convém criar um manipulador de alerta de email personalizada no Microsoft Office SharePoint Server 2007 em qualquer um dos seguintes cenários:
  • Campos, como o campo ItemName , são truncados para 70 caracteres no alerta de email. Como solução alternativa para o limite de 70 caracteres, use o método que é descrito na seção "Mais informação".
  • Você deseja incorporar conteúdo adicional no alerta de email.
  • Você deseja alterar o layout ou a aparência do alerta de email.

Mais Informações

Esse método cria uma classe que herda a interface IAlertNotificationHandler e que usa o método OnNotification . Esse método lhe permite interceptar os alertas de email a saída e modificá-los. Você pode acessar a maioria das propriedades do alerta. Usando o código de modelo de objeto do SharePoint e análise de XML, você pode extrair todas as informações que você deve ter para modificar o alerta de email. Em seguida, você pode criar o stub HTML para exibir o alerta de email com base nas suas necessidades. Além disso, você pode enviar o alerta de email usando a funcionalidade de SendMail ?s SharePoint.

Essas etapas incluem código de exemplo que formata a saída para lembrar de perto as mensagens de email de alerta modelo padrão. Você pode modificar o HTML neste código de exemplo para personalizar o alerta de email resultante.
  1. Crie um projeto de classe que herda a interface IAlertNotificationHandler . Inclua o namespace Microsoft.SharePoint e o namespace Microsoft.SharePoint.Utilities no projeto.

    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 arquivo .dll altamente assinado para o global assembly cache (GAC). Você pode arrastar o assembly para a pasta de assembly. Ou, você pode usar a ferramenta GACUtil para registrar o arquivo .dll.

    Para obter mais informações, visite os seguintes sites da MSDN.Para obter mais informações, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
    315682  (http://support.microsoft.com/kb/315682/ ) Como instalar um assembly no cache global de assemblies no Visual Basic .NET ou no Visual Basic 2005
  3. Faça uma cópia do arquivo alertTemplates.xml que está na seguinte pasta:
    C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\12\Template\Xml
    Nomeie esse novo arquivo CustomAlertTemplates.xml e, em seguida, salve o arquivo.

    Observação Não modifique o arquivo alertTemplates.xml diretamente. Modificando diretamente este arquivo é sem suporte.
  4. Edite o arquivo e procure as propriedades de palavra-chave. Adicione as seguintes linhas ao bloco de propriedades:
    <NotificationHandlerAssembly>AlertHandler, Version=1.0.0.0, Culture=neutral, PublicKeyToken=d59ecf2a3bd66904</NotificationHandlerAssembly>
              <NotificationHandlerClassName>AlertHandler.Class1</NotificationHandlerClassName>
        <NotificationHandlerProperties></NotificationHandlerProperties>
    o fragmento de código deve lembrar isso 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 fragmento de código XML em cada seção de modelo de alerta que você deseja o arquivo de modelo de alerta.
  5. Em um prompt de comando, mude para o diretório de extensions\12\BIN de servidor C:\Program Files\Common Files\Microsoft Shared\Web. Em seguida, execute o seguinte comando:
    stsadm -o updatealerttemplates - filename "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 trabalho--alertas imediatos-VP "cada minutos de 1"
    Este comando Especifica freqüência SharePoint Server verifica se há alertas que devem ser enviados imediatamente. O valor é especificado em minutos. Para este teste, a freqüência é definida como 1 minuto.

    Para obter mais informações, visite o seguinte site:
    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. Verifique se você tem configurado para mensagens de email de saída do SharePoint. Para obter mais informações sobre como configurar mensagens de email de saída, visite o seguinte site:
    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 você estiver usando a biblioteca de documentos para o teste, certifique-se que você tenha alertas para a biblioteca de documentos ativado.
  9. Execute os seguintes comandos:
    • iisreset
    • Services.msc
  10. No snap-in MMC de serviços, reinicie o serviço Temporizador do Windows SharePoint Services.
Depois de concluir essas etapas, deve ser configurado o manipulador de alerta de email personalizado. Depois de criar um novo alerta, você deve receber o alerta de email personalizado atualizado.

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 traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes 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/ )