Html Emails mit Dundas Mailer verschicken
Geschrieben von: Christoph Wille Emailkomponenten gibt es wie Sand am Meer - allerdings unterstützen nicht alle das Versenden von Html Emails, und wenn, dann kosten sie Geld, oder hängen Werbung an jede Email an. Heute stelle ich Ihnen Dundas Mailer vor, das vollständig gratis ist, Html Emails mit eingebetteten Images kann, und keine Restriktionen in der Funktionalität mit sich bringt. Klarerweise kann die Komponente auch Standardmails verschicken, wir wollen uns heute aber mit dem interessanteren Thema der Html Emails beschäftigen. Die Komponente kann von Dundas gratis downgeloadet werden, und sie kommt mit einem netten Setup Programm. Achtung: die Hilfe muß separat downgeloadet werden, und diese umfasst alle gratis angebotenen Komponenten (es ist auch Dundas Upload zum Dateiupload gratis). Einfache Html Emails versendenWas verstehe ich unter einen einfachen Html Email? Nun, der folgende Screenshot zeigt's: Die Funktionalität dafür ist in der Datei SendHtmlMail.asp verpackt. Ich habe auf Eingabeformulare verzichtet, damit wir uns rein auf den Code zum Verschicken einer Html Email konzentrieren können: <%@ Language=VBScript %> <% Option Explicit Response.Buffer = True Dim objEmail, strHtml Set objEmail = Server.CreateObject("Dundas.Mailer") objEmail.TOs.Add "christophw@fx2.dev.alfasierrapapa.com" objEmail.FromAddress = "christophw@dev.alfasierrapapa.com" objEmail.Subject = "A simple HTML mail" ' objEmail.CCs.Add "hostmaster@fx2.dev.alfasierrapapa.com" ' objEmail.BCCs.Add "spook@fx2.dev.alfasierrapapa.com" objEmail.SMTPRelayServers.Add "fx2.dev.alfasierrapapa.com" strHtml = "<html><head></head><body bgcolor=""#ffffff"">" strHtml = strHtml & "<h1>A Simple Email</h1><p>" strHtml = strHtml & "...and some <b>body</b> <i>text</i></p>" strHtml = strHtml & "</body></html>" objEmail.HTMLBody = strHtml On Error Resume Next objEmail.SendMail If Err.Number <> 0 Then Response.Write "Sending Email failed: " & Err.Description Else Response.Write "Email was sent successfully" End If %> Die Empfänger - To, Cc und Bcc - sind bei Dundas Mailer als Collections angelegt, in die man die Empfänger mittels Add Methode einträgt. Der (oder die) Mailserver wird mittels SMTPRelayServers Collection angegeben, hingegen sind FromAddress, Subject und HTMLBody Eigenschaften. Die HTMLBody Eigenschaft ist für uns das interessante: hier wird ein völlig normales HTML Dokument zugewiesen, das ich in diesem Fall mehr oder weniger dynamisch zusammenbaue. Man könnte den Body allerdings auch mit der LoadBodyFromFile Methode aus einer Datei laden. Der Versand der Email geht kurz und schmerzlos mit der SendMail Methode von statten. Es empfiehlt sich, die etwaig auftretenden Fehler mittels des On Error Resume Next Statements abzufangen, und selbst zu bearbeiten (Err Objekt). Emails mit eingebetteten BildernMan kann zwar mit rein textbasierten Html Emails schon einiges anstellen, richtig interessant wird es allerdings erst dann, wenn man zusätzliche Dateien in die Emails einbindet - in den meisten Fällen werden es zwar Bilder sein, man kann die Vorgangsweise aber auch auf Hintergrundmusik oder JavaScript Includes anwenden. Auch für diesen Anwendungsfall zuerst wieder das Ergebnis: Der Code dazu findet sich in SendHtmlMail_WithImg.asp: <%@ Language=VBScript %> <% Option Explicit Response.Buffer = True Dim objEmail, strHtml Set objEmail = Server.CreateObject("Dundas.Mailer") objEmail.TOs.Add "christophw@fx2.dev.alfasierrapapa.com", "Christoph Wille" objEmail.FromAddress = "christophw@dev.alfasierrapapa.com" objEmail.Subject = "A cooler HTML mail" objEmail.SMTPRelayServers.Add "fx2.dev.alfasierrapapa.com" ' Add(file name, unique content id, content name, custom header objEmail.HTMLEmbeddedObjs.Add Server.MapPath("aspheute.png"), _ "01", _ "aspheute.png" strHtml = "<html><head></head><body bgcolor=""#ffffff"">" strHtml = strHtml & "<h1>A cooler Email</h1><p>" strHtml = strHtml & "...go and visit <a href=""http://www.aspheute.com/" strHtml = strHtml & """><img src=""cid:01"" border=0></a></p>" strHtml = strHtml & "</body></html>" objEmail.HTMLBody = strHtml On Error Resume Next objEmail.SendMail If Err.Number <> 0 Then Response.Write "Sending Email failed: " & Err.Description Else Response.Write "Email was sent successfully" End If %> Um Dateien an eine Email anzufügen, verwendet man die Add Methode der HTMLEmbeddedObjs Collection. Dieser muß man den physikalischen Pfad zur Datei angeben, eine eindeutige Content-Id (diese verwendet man, um auf die eingebettete Datei zu referenzieren), sowie einen "freundlichen" Contentnamen. Und schon kann man die Datei in der Html Email verwenden. Dies passiert beim Zusammenbau des Html Strings. Um auf die Graphik zu referenzieren verwende ich im IMG Tag den String cid:01. Das ist kurz für content id, und die Zahl bezieht sich auf die eindeutige Content-Id, die wir mittels HTMLEmbeddedObjs.Add erzeugt haben. Apropos: die Content-Id kann eine Zahl sein, sie muß nicht. Ein Muß allerdings ist cid kleinzuschreiben, weil sonst bekommt man mit Outlook so seine Probleme... Damit hätten wir ein Bild in unserer Html Email, und sind damit auch schon (fast) am Ende des heutigen Artikels. SchlußbemerkungGute Komponenten müssen nicht immer Geld kosten - und Dundas Mailer ist ein weiterer Beweis dafür. Download des CodesKlicken Sie hier, um den Download zu starten. Verwandte Artikel
ACT MetaMailer - Mails verschicken leicht gemacht 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 |