Glengamoi (Forum) · AspHeute · .NET Heute (RSS-Suche) · AspxFiles (Wiki) · .NET Blogs

Html Emails mit Dundas Mailer verschicken

Geschrieben von: Christoph Wille
Kategorie: Komponenten

This printed page brought to you by AlphaSierraPapa

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 versenden

Was 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 Bildern

Man 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ßbemerkung

Gute Komponenten müssen nicht immer Geld kosten - und Dundas Mailer ist ein weiterer Beweis dafür.

This printed page brought to you by AlphaSierraPapa

Download des Codes

Klicken Sie hier, um den Download zu starten.
http://www.aspheute.com/code/20010625.zip

Verwandte Artikel

ACT MetaMailer - Mails verschicken leicht gemacht
http:/www.aspheute.com/artikel/20021028.htm
Auslesen von Emails aus einem POP3 Account
http:/www.aspheute.com/artikel/20000810.htm
Downloads per Email verschicken
http:/www.aspheute.com/artikel/20000330.htm
Email versenden mit AspMail
http:/www.aspheute.com/artikel/19990809.htm
Emails mit ASP.NET und VB.NET versenden
http:/www.aspheute.com/artikel/20010122.htm
Emails mit ASP.NET versenden
http:/www.aspheute.com/artikel/20000918.htm
Emails mittels CDOSYS versenden
http:/www.aspheute.com/artikel/20000919.htm
Emails senden mit CDONTS
http:/www.aspheute.com/artikel/20000515.htm
Emails versenden mit ASPEmail
http:/www.aspheute.com/artikel/20010219.htm
Mit PGP verschlüsselte e-Mails senden
http:/www.aspheute.com/artikel/20000912.htm

Links zu anderen Sites

Dundas Mailer
http://www.dundas.com/downloads/free/index.asp#mailer

 

©2000-2006 AspHeute.com
Alle Rechte vorbehalten. Der Inhalt dieser Seiten ist urheberrechtlich geschützt.
Eine Übernahme von Texten (auch nur auszugsweise) oder Graphiken bedarf unserer schriftlichen Zustimmung.