Nachrichten an Newsserver (NNTP) mittels CDOSYS senden
Geschrieben von: Christian Koller Wie bereits im Artikel Emails mittels CDOSYS versenden erwähnt, kann man News (Nachrichten) von einem Windows 2000 Server an einen Newsgroup Server mittels NNTP (Network News Transport Protocol) versenden. Für diejenigen, die den vohergegangenen Artikel nicht gelesen haben: CDOSYS steht für Collaboration Data Objects for Windows 2000 Server. Die benötigte Funktionalität um eine Nachricht an eine beliebige Newsgroup zu senden, wird vollständig von der CDOSYS Komponente zur Verfügung gestellt. Da CDOSYS Teil des Windows 2000 Server Betriebsystems ist, kann es von jeder ASP Seite aus, die auf einem IIS 5.0 gehostet wird, aufgerufen und benutzt werden. Um in ASP eine NNTP Nachricht zu generieren, greift man auf das CDO.Message Objekt der CDOSYS Komponente zurück. Man weist dann die Eigenschaften und den Inhalt der NNTP Nachricht den entsprechenden Eigenschaften des CDO.Message Objektes zu. Da CDOSYS sehr flexibel in der Art und Weise ist, wie und wohin eine Nachricht gesendet werden kann, stellt man mittels CDO.Configuration ein, daß das Message Objekt eine Newsgroup-Nachricht an einen externen Server sendet. Ausserdem gibt man den Namen der Newsgroup sowie dem Domain oder die IP Adresse und den Port des Newsservers an. Hier ein kurzer Abriss über die wichtigsten Eigenschaften des CDO.Message Objektes:
Die zum Versenden einer News benötigten Eigenschaften des Message Objektes sind einfach zu beschreiben. Hingegen sind die Konfigurationsmöglichkeiten und dementsprechend die Anzahl der Felder des Configuration Objektes bei weitem zu umfangreich um diese hier zu besprechen. Bitte benutzen Sie die Windows 2000 Platform SDK Dokumentation (die auch in der MSDN Dokumentation enthalten ist) um die Felder und Werte des Configuration Objectes für den jeweiligen Einsatzzweck des CDO.Message Objektes nachzuschlagen. Anschaulicher als jede Theorie ist natürlich die Praxis. Daher möchte ich hier eine ASP Datei präsentieren, die eine einfache Nachricht an einen externen Newsgroup Server sendet. Zum Senden einer Nachricht benötigt man im ASP Skript zwei CDOSYS Objekte: Message und Configuration. Die Nachricht an die Newsgroup wird vom Message Objekt repräsentiert. Daher setzt man mittels Message Eigenschaften die Eigenschaften und den Inhalt der Nachricht fest. Mittels Configuration Objekt legt man fest, wie und wohin die Nachricht versendet werden soll. In unserem Fall kann die Nachricht an einen beliebigen externen Server verschickt werden. Das folgende Beispiel demonstriert anonymes Posting. <% ' Typeinformationen und CDOSYS Konstanten ' ueber das CDOSYS und das ADO 2.5 Objekt zugaenglich machen: %> <!--METADATA TYPE="typelib" UUID="CD000000-8B95-11D1-82DB-00C04FB1625D" NAME="CDO for Windows 2000 Library" --> <!--METADATA TYPE="typelib" UUID="00000205-0000-0010-8000-00AA006D2EA4" NAME="ADODB Type Library" --> <html> <body> <% Dim strFrom, strTo, strSubject, strBody Dim objMessage, objConfig ' Message und Configuration Objekte instanzieren Set objMessage = CreateObject("CDO.Message") Set objConfig = CreateObject("CDO.Configuration") ' Nachrichten Eigenschaften festlegen With objMessage .To = "empfanger@aspheute.com" .From = "absender@internet.net" .Newsgroups = "ASP.developer.CDOSYS" .Subject = "Betreff" .TextBody = "Nachricht" End With ' Konfigurieren: ' Newsgroup Server: news.domain.com objConfig.Fields(cdoNNTPServer) = "news.domain.com" ' News Port : 119 (Standard bei NNTP Server) objConfig.Fields(cdoNNTPServerPort) = 119 ' Authentifizierung am Newsgroup Server: Keine objConfig.Fields(cdoNNTPAuthenticate) = cdoAnonymous ' Nachricht an externen Newsgroup Server verschicken objConfig.Fields(cdoPostUsingMethod) = cdoPostUsingPort ' Konfiguration updaten objConfig.Fields.Update ' Konfiguration an Nachricht binden Set objMessage.Configuration = objConfig ' Nachricht zu Newsgroups-Server senden: ' Error Handling waehrend dem Versenden On Error Resume Next ' CDO-Nachricht an Newsgroup Server senden objMessage.Post If Err.Number = 0 Then Response.Write("Die Nachricht wurde versendet!") Else Response.Write("Waehrend des Versendens ist " & _ "ein Fehler aufgetreten.") Err.Number = 0 End If On Error Goto 0 %> </body> </html> Um das Skript lokal auf Ihrem IIS 5.0 Server testen zu können, müßen Sie für die Internet Information Services die NNTP Server Unterstützung installiert haben. Diese ist Teil des IIS und daher auch Teil des Windows 2000 Server Betriebssystem. Installation des NNTP Service auf Windows 2000 ServerUm festzustellen, ob Ihr IIS NNTP Sites unterstützt, öffen Sie den Internet Services Manager, zu finden im Start Menü unter Programme, Administrations Tools. Klicken Sie mit der rechten Maustaste auf Ihren Server und stellen Sie fest, ob unter Neu der Punkt "NNTP Virtual Server.." existiert (siehe Bild 1).
Sollte der Punkt nicht vorhanden sein, so installieren Sie den NNTP Service. Gehen Sie dazu zum Control Panel und starten Sie "Add/Remove Programms". Im sich öffnenden Fenster (Bild 2) wählen Sie "Add/Remove Windows Component" und der Windows Component Wizard erscheint.
Wählen Sie "Internet Information Services (IIS)" und klicken Sie auf den Button "Details" (siehe Bild 3).
Im erscheinenden Fenster können Sie nun den NNTP Service installieren (siehe Bild 4).
Nachdem der NNTP Service installiert ist, können Sie zu Testzwecken einen NNTP Virtual Server anlegen. Erstellen eines NNTP Virtual ServerZuerst müssen Sie zwei Verzeichnisse auf Ihrem Webserver anlegen. Eines wird benötigt um die internen Server Dateien des NNTP Servers zu speichern, das zweite Verzeichnis speichert alle Newsgroup Nachrichten. Nachdem die zwei Verzeichnisse angelegt sind installieren Sie einen neuen (virtuellen) NNTP Server im IIS. Öfnnen Sie dazu den Internet Services Manager und klicken Sie auf das Icon, das Ihren Webserver symbolisiert. Nun wählen Sie im Menü (unter Action oder mit der rechten Maustaste) New, NNTP Virtual Server. Darauf öffnet sich der New NNTP Virtual Server Wizard. Geben Sie eine Beschreibung des NNTP Servers ein, z.B. NNTP Test. Danach weisen Sie dem NNTP Server eine IP Adresse Ihres Servers zu. Der Port sollte üblicherweise auf den Standardwert 119 gesetzt werden (siehe Bild 5).
Geben Sie den Pfad zum Verzeichnis an, das die NNTP Dateien speichern soll. Wählen Sie File System als Speichermedium. Wählen Sie das Verzeichnis, das die Newsgroup Nachrichten beinhalten soll. Schon haben Sie einen neuen NNTP Server installiert. Um nun noch eine Newsgroup auf dem Server einzurichten, klicken Sie auf das Icon des Newsgroup Servers. Klicken Sie nun mit der rechten Maustaste auf "Newsgroups" und wählen Sie New, Newsgroup (siehe Bild 6).
Der New Newsgroup Wizard öffnet sich und Sie können den Namen für die Newsgroup (zum Beispiel NNTP.Test) angeben. Nachdem die Newsgroup angelegt ist, ist diese unter der Newsgroups Eigenschaft des NNTP Virtual Servers im Internet Service Manager sichtbar (Bild 7).
Nun können Sie die angelegte Newsgroup zum Testen mit CDOSYS benutzen. Um Nachrichten aus der Newsgroup wieder auszulesen, um zum Bespiel sicherstellen zu können, daß eine Nachricht in der Newsgroup angekommen ist, benutzen Sie einen ganz gewöhnlichen Newsgroup Reader, wie er zum Beispiel im Netscape Communicator als Messenger bekannt ist (siehe Bild 8).
SchlußbemerkungMit CDOSYS hat man als Entwickler für ASP unter IIS 5.0 ein hervorragendes Werkzeug um aus ASP Seiten heraus nicht nur Emails sondern auch News an Newsgroups schicken zu können. Download des CodesKlicken Sie hier, um den Download zu starten. Verwandte Artikel
Emails mittels CDOSYS versenden Links zu anderen SitesWenn Sie jetzt Fragen haben...Wenn Sie Fragen rund um die in diesem Artikel vorgestellte Technologie haben, dann schauen Sie einfach bei uns in den Community Foren der deutschen .NET Community vorbei. Die Teilnehmer helfen Ihnen gerne, wenn Sie sich zur im Artikel vorgestellten Technologie weiterbilden möchten. Haben Sie Fragen die sich direkt auf den Inhalt des Artikels beziehen, dann schreiben Sie dem Autor! Unsere Autoren freuen sich über Feedback zu ihren Artikeln. Ein einfacher Klick auf die Autor kontaktieren Schaltfläche (weiter unten) und schon haben Sie ein für diesen Artikel personalisiertes Anfrageformular.
Und zu guter Letzt möchten wir Sie bitten, den Artikel zu bewerten. Damit helfen Sie uns, die Qualität der Artikel zu verbessern - und anderen Lesern bei der Auswahl der Artikel, die sie lesen sollten.
©2000-2006 AspHeute.com |