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.
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.
- 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=====================
- 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
- 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. - 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. - 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
- 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: - 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:
- Se estiver a utilizar a biblioteca de documentos para o teste, certifique-se de que que alertas para a biblioteca activada.
- Execute os seguintes comandos:
- 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.