Dieser Artikel beschreibt wie Sie einen benutzerdefinierten e-Mail-Warnung Handler in Microsoft Office SharePoint Server 2007 zu erstellen. In diesem Artikel beschriebenen Methode verwendet die
IAlertNotificationHandler -Schnittstelle zum Abfangen von e-Mail-Benachrichtigung und es ändern.
Möglicherweise möchten Sie einen benutzerdefinierten e-Mail-Warnung Handler erstellen, in Microsoft Office SharePoint Server 2007 in einem der folgenden Szenarien:
- Felder werden z. B. das Feld Elementname zu 70 Zeichen in der e-Mail-Benachrichtigung gekürzt. Verwenden Sie die 70-Zeichengrenze umgehen, beschriebenen Methode im Abschnitt "Weitere Informationen".
- Möchten Sie zusätzliche Inhalte in e-Mail-Benachrichtigung einbetten.
- Möchten Sie das Layout oder die Darstellung der e-Mail-Benachrichtigung zu ändern.
Diese Methode erstellt eine Klasse, die von der
IAlertNotificationHandler -Schnittstelle erbt und, verwendet die
OnNotification -Methode. Diese Methode können Sie ausgehende e-Mail-Benachrichtigungen abfangen und ändern. Sie können die meisten Eigenschaften der Warnung zugreifen. Mithilfe von XML-Analyse und SharePoint-Objektmodellcode können Sie die Informationen extrahieren, die Sie benötigen, um e-Mail-Benachrichtigung zu ändern. Anschließend können Sie die Stub HTML zum Anzeigen der e-Mail-Benachrichtigung entsprechend Ihren Anforderungen erstellen. Darüber hinaus können Sie e-Mail-Benachrichtigung senden, mit SharePoint ?s SendMail-Funktion.
Diese Schritte beinhalten Beispielcode, die Formatierung der Ausgabe, die die standardmäßige Warnung Vorlage e-Mail-Nachrichten genau ähnelt. Sie können von HTML in diesem Beispielcode in die resultierende e-Mail-Benachrichtigung anpassen ändern.
- Erstellen Sie ein Klasse-Projekt, die von der IAlertNotificationHandler -Schnittstelle erbt. Fügen Sie den Microsoft.SharePoint-Namespace und die Microsoft.SharePoint.Utilities-Namespace in das Projekt.
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=====================
- Fügen Sie eine stark signiert DLL-Datei zum globalen Assemblycache (GAC). Sie können die Assembly in den Assemblyordner ziehen. Oder Sie können das Tool GACUtil so registrieren Sie DLL-Datei verwenden.
Weitere Informationen finden Sie auf folgenden Websites von MSDN.Weitere Informationen finden Sie im folgenden Artikel der Microsoft Knowledge Base: 315682
(http://support.microsoft.com/kb/315682/
)
Zum Installieren einer Assembly in den globalen Assemblycache in Visual Basic .NET oder Visual Basic 2005
- Erstellen Sie eine Kopie der Datei alertTemplates.xml im folgenden Ordner:
Ordner Programme\Gemeinsame Dateien\Microsoft Shared\Web Server Extensions\12\Template\Xml
Nennen Sie diese neue Datei CustomAlertTemplates.xml, und speichern Sie die Datei.
Hinweis: Ändern Sie die alertTemplates.xml-Datei nicht direkt. Direktes Ändern dieser Datei wird nicht unterstützt. - Bearbeiten Sie die Datei und suchen Sie nach Schlüsselwort-Eigenschaften. Fügen Sie dem Block Eigenschaften die folgenden Zeilen:
<NotificationHandlerAssembly>AlertHandler, Version=1.0.0.0, Culture=neutral, PublicKeyToken=d59ecf2a3bd66904</NotificationHandlerAssembly>
<NotificationHandlerClassName>AlertHandler.Class1</NotificationHandlerClassName>
<NotificationHandlerProperties></NotificationHandlerProperties> der Stub sollten diese jetzt aussehen:
<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>
dieses XML-Stub in jeder Warnung Vorlage-Abschnitt, der in der Warnung Vorlage-Datei einschließen. - Wechseln Sie an einer Eingabeaufforderung zu dem Ordner c:\Programme\Gemeinsame Dateien\Microsoft Shared\Web Server extensions\12\BIN Verzeichnis. Führen Sie folgenden Befehl:
Stsadm -o Updatealerttemplates - Dateiname "Ordner c:\Programme\Gemeinsame Dateien\Microsoft Shared\Web Server Extensions\12\TEMPLATE\XML\customalerttemplates.xml" - Url your_sharepoint_site url
- Führen Sie den folgenden Befehl aus:
Stsadm-o Setproperty - Pn Auftrag-sofortige-Benachrichtigungen-BW "1 Minuten"
Dieser Befehl gibt an, wie oft SharePoint Server für Benachrichtigungen überprüft, die sofort gesendet werden. Der Wert wird in Minuten angegeben. Für diesen Test wird die Häufigkeit auf 1 Minute festgelegt.
Weitere Informationen der folgenden Microsoft-Website: - Stellen Sie sicher, dass für ausgehende e-Mail-Nachrichten konfiguriert SharePoint verfügen. Weitere Informationen zum Konfigurieren von ausgehenden e-Mail-Nachrichten der folgenden Microsoft-Website:
- Wenn Sie das Dokument Bibliothek für den Test verwenden, stellen Sie sicher, dass Sie Benachrichtigungen für die Dokument-Bibliothek eingeschaltet haben.
- Führen Sie die folgenden Befehle aus:
- Starten Sie den Windows SharePoint Services-Timer-Dienst im Dienste-Snap-in neu.
Nachdem Sie diese Schritte durchgeführt haben, sollte der benutzerdefinierten e-Mail-Warnung Handler konfiguriert werden. Nachdem Sie eine neue Warnung erstellt haben, sollten Sie die aktualisierte benutzerdefinierte e-Mail-Benachrichtigung erhalten.