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

Liste

.NET 2.0 (1)
.NET Allgemein (16)
.NET Fu (5)
ADO.NET (11)
Aprilscherz (3)
ASP Grundlagen (44)
ASP Tricks (83)
ASP.NET (44)
ASPIntranet.de (5)
C# (28)
Datenbank (44)
Dokumentation (4)
IIS 6.0 (1)
Komponenten (29)
Optimierung (10)
Server (21)
Sicherheit (34)
Tee Off (6)
VB.NET (6)
WAP (8)
Web Services (11)
XML (9)

RSS 2.0 - Die neuesten fünf Artikel auf AspHeute.com


 

Suchen





 

English Articles
Chinese Articles
Unsere Autoren
 
Link zu AspHeute
Impressum
Werben
Anfragen

Html Emails mit Dundas Mailer verschicken

Geschrieben von: Christoph Wille
Kategorie: Komponenten

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.

Download des Codes

Klicken Sie hier, um den Download zu starten.

Verwandte Artikel

ACT MetaMailer - Mails verschicken leicht gemacht
Auslesen von Emails aus einem POP3 Account
Downloads per Email verschicken
Email versenden mit AspMail
Emails mit ASP.NET und VB.NET versenden
Emails mit ASP.NET versenden
Emails mittels CDOSYS versenden
Emails senden mit CDONTS
Emails versenden mit ASPEmail
Mit PGP verschlüsselte e-Mails senden

Links zu anderen Sites

Dundas Mailer

Wenn 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.

Bewerten Sie diesen Artikel
 Sehr gut   Nicht genügend  
   1  2  3  4  5  
 

  
   Für Ausdruck optimierte Seite

©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.