Eine der häufigstem Fragen in den Newsgroups ist, wie kann ich eMails versenden. Was mit Perl scheinbar ganz einfach ist, ist in ASP nicht zu machen. Es ist auch in ASP ganz einfach. Eigentlich sogar viel einfacher. Allerdings benötigen Sie ein Stück Software dazu, da ASP nicht direkt auf IP Ports zugreifen kann. Eine solche Software ist idealerweise als Komponente vorhanden und kann über Server.CreateObject instanziert werden.
Neben der Komponente brauchen Sie auch noch unbeding einen Mailserver, dem Sie die Mails übergeben können.
Es gibt zahlreiche kostenlose und kostenpflichtige Komponenten. Ich möchte Ihnen aber CDONTS (auch CDOSYS) vorstellen. Wenn Sie den SMTP Dienst installieren, bekommen Sie auch CDONTS mitgeliefert. CDONTS läuft unter NT4 und Windows 2000. CDOSYS nur unter 2000.
Im gegensatz zu den anderen Komponenten tut CDONTS nicht wirklich mails versenden. Es erzeugt ein textfile im Mailformat und legt es in das Verzeichnis inetpub/mailroot/pickup
Wenn der SMTP Dienst steht, beleibt es auch dort liegen und kann z.B. mit Outlook Express geöffnet werden. Wenn Der SMTP Dienst läuft, sieht er dauernd im verzeichnis nach und versendet das Mail. Diese Methode ist wesentlich schneller (für die ASP Seite) als wenn die Komponente direkt senden würde.
Die Programmierung ist sehr einfach. Sie müssen das Objekt instanzieren. Dieses liegt übrigens in der CDONTS.DLL.
Die Eigenschaften TO kann auch mit mehreren EMail Adressen gefüllt werden. Erst mit Send wird das Mail versandt.
Set objMail = Server.CreateObject("CDONTS.NewMail") objMail.To = "you@ppedv.de" objMail.From = "ppedv@ppedv.de" objMail.Value("Reply-To") = "me@ppedv.de" objMail.Subject = "Hi there from me" objMail.Body = "This is a test message" objMail.Send Set objMail = Nothing |
Auch das Anhängen von Attachments ist möglich.
Mit CDONTS können Sie aber noch mehr tun, dies aber in späteren Artikeln.
Zum Testen ist es übrigens von Vorteil den SMTP Service zu stoppen. Sie können Dann die Mails einfach aus dem Verzeichnis löschen und so ein versenden verhindern.