Forum: PC-Programmierung Mit VB.NET Email senden. Aber als HTML!


von Schnurka (Gast)


Lesenswert?

Hallo Leute,

Für einen Personalisierten Newsletter habe ich mir eine kleine Datenbank 
zusammengestöppselt und möchte nun einen personalisierten Text 
versenden.
Soweit so gut.
Mit der System.Web.Mail Klasse funktioniert dies auch sehr gut.
Nun mein Problem: Ich möchte gerne einen HTML formatierte Email senden.

Kann ich das mit einer Richtextbox lösen?

Zur zeit hänge ich den Text wie folgt an:

Dim oMail As New MailMessage()
With oMail
.Body = "Dies ist eine Test-Nachricht"

von Karl H. (kbuchegg)


Lesenswert?

Schnurka schrieb:

> Mit der System.Web.Mail Klasse funktioniert dies auch sehr gut.
> Nun mein Problem: Ich möchte gerne einen HTML formatierte Email senden.

Auch HTML ist nichts anderes als Text

Google "system.web.mail"

gleich der erste Link:
http://msdn.microsoft.com/de-de/library/system.web.mail(v=vs.80).aspx
1
System.Web.Mail-Namespace
2
3
Die Klassen in diesem Namespace sind veraltet. Verwenden Sie
4
stattdessen den System.Net.Mail-Namespace.

OK. Also .Net.Mail ->
http://msdn.microsoft.com/de-de/library/system.net.mail(v=vs.80).aspx
1
System.Net.Mail-Namespace
2
3
Hinweis: Dieser Namespace ist neu in .NET Framework, Version 2.0.
4
Der System.Net.Mail-Namespace enthält Klassen zum Senden von
5
E-Mail-Nachrichten an einen SMTP-Server (Simple Mail Transfer Protocol)
6
für die Übermittlung.
7
Die MailMessage-Klasse stellt den Inhalt einer E-Mail-Nachricht dar.

MailMessage. ok ->
http://msdn.microsoft.com/de-de/library/system.net.mail.mailmessage(v=vs.80).aspx
1
...
2
Verwenden Sie die AlternateViews-Eigenschaft, um Kopien einer E-Mail-
3
achricht in unterschiedlichen Formaten anzugeben. Wenn Sie beispielsweise
4
eine Nachricht in HTML senden,
5
...

Aha: AlternateViews hat da irgendwas damit zu tun
->
http://msdn.microsoft.com/de-de/library/system.net.mail.mailmessage.alternateviews(v=vs.80).aspx

Und siehe da, da gibt es sogar ein Beispiel
1
public static void CreateMessageWithMultipleViews(string server, string recipients)
2
{
3
    // Create a message and set up the recipients.
4
    MailMessage message = new MailMessage(
5
        "jane@contoso.com",
6
        recipients,
7
        "This e-mail message has multiple views.",
8
        "This is some plain text.");
9
10
    // Construct the alternate body as HTML.
11
    string body = "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">";
12
    body += "<HTML><HEAD><META http-equiv=Content-Type content=\"text/html; charset=iso-8859-1\">";
13
    body += "</HEAD><BODY><DIV><FONT face=Arial color=#ff0000 size=2>this is some HTML text";
14
    body += "</FONT></DIV></BODY></HTML>";
15
16
    // Add the alternate body to the message.
17
    AlternateView alternate = new AlternateView(body, MediaTypeNames.Text.Html);
18
    message.AlternateViews.Add(alternate);
19
....

Du musst mehr auf eigene Faust recherchieren. Google ist dein Freund!

: Bearbeitet durch User
von Georg A. (georga)


Lesenswert?

Mein letzter Versuch mit AlternateViews (zwar in Perl+MimeLite, aber 
egal) ging in einer Outlook-verseuchten Umgebung leider daneben, weil 
das Outlook so eingestellt war, dass es per Default nur den Plaintext 
angezeigt hat. Umstellen wollte das keiner. Ich habe dann HTML-only 
verschickt und das ging dann...

von Daniel F. (df311)


Lesenswert?

Georg A. schrieb:
> das Outlook so eingestellt war, dass es per Default nur den Plaintext
> angezeigt hat. Umstellen wollte das keiner. Ich habe dann HTML-only
> verschickt und das ging dann...

braves outlook (hätte mir nie geadcht, dass ich das jemals sage - 
normalerweise schimpfe ich immer über dieses unnötige, unbenutzbare, 
inkompatible monstrum von bugs).

schon mal daran gedacht, dass es leute gibt, die keine html-email 
bekommen WOLLEN und deshalb ihren email-client auf plain text 
eingestellt haben?

von Georg A. (georga)


Lesenswert?

He, ich lebe mit mutt ;) Das war ein Kunde, die Mail hausintern, und der 
automatisch erzeugte Content war mit schön formatierter HTML-Darstellung 
für den Workflow viel besser nutzbar.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.