Willkommen bei dotnet-snippets.de! Snippet hinzufügen Login Registrieren
Snippets in der Datenbank: 1562 | Anzahl registrierter User: 1893 | Besucher online: 330
Hauptmenü
Home
Top Ten
Zufälliger Snippet
FAQs
.NET Community
dotnet-forum.de
dotnet-kicks.de
Social

RSS Feeds
Rss Alle Snippets
Rss C#
Rss VB.NET
Rss C++
Rss ASP.NET
Partner
Member of Microsoft Community Leader/Insider Program (CLIP)

HTML Email mit eingebettem Bild über SMTP senden


Autor: Günther Foidl
Sprache: C#
Bewertung: 9
(1 Bewertung)
Anzahl der Aufrufe: 12286
  
Kick it on dotnet-kicks.de  

Beschreibung:

Wie eine Text-Email über SMTP gesendet werden kann wurde schon gezeigt (zB http://dotnet-snippets.de/dns/mail-senden-mit-authentifizierung-unter-net-20-SID36.aspx).

Nachfolgendes Beispiel zeigt wie eine Email im HTML-Format mit eingebettetem Bild versendet werden kann.


Abgelegt unter: Email, HTML Email, Email senden.



C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
using System.Net;
using System.Net.Mail;
using System.Text;

namespace HTMLEmail_mit_Bild
{
	class Program
	{
		static void Main(string[] args)
		{
			// Email erstellen:
			MailMessage mailMessage = new MailMessage(
				new MailAddress("zu@tirol.at", "Empfänger"),
				new MailAddress("gü@tirol.at", ""));
			mailMessage.Subject = "Betreff";
			mailMessage.ReplyTo = new MailAddress("antwortadresse@tirol.at", "No Reply");

			// HTML-Teil der Email. Um ein Bild einzubetten muss im
			// <img>-Tag die Präfix 'cid' zum Mappen der ContentID
			// für die eingebette Ressource verwendet werden:
			AlternateView htmlView =
				AlternateView.CreateAlternateViewFromString(
					"HTML Inhalt als String",
					Encoding.UTF8,
					"text/html");

			// Eingebette Ressource:
			LinkedResource logo = new LinkedResource(
				"Pfad zum Bild das in die Email eingebettet werden soll");

			// ContentID -> siehe Kommentar oben für eingebettes Bild
			logo.ContentId = "MeineID";

			// Eingebette Ressource dem HTML-Teil hinzufügen:
			htmlView.LinkedResources.Add(logo);

			// HTML-Teil der Email hinzufügen:
			mailMessage.AlternateViews.Add(htmlView);

			// Email senden:
			new SmtpClient().Send(mailMessage);

			SmtpClient smtp = new SmtpClient("meinHost");
			smtp.Credentials = new NetworkCredential(
				"BenutzerName",
				"Passwort");
			smtp.Send(mailMessage);
		}
	}
}
Sie haben Fragen zu diesem Snippet oder brauchen Hilfe bei der .NET Entwicklung?
Freundliche und kompetente Entwickler helfen Ihnen gern weiter im Forum für .NET Entwicklung.



Kommentare:
(Zum Schreiben von Kommentaren bitte anmelden.)

Matthias schrieb am:  29.06.2010 09:25:26

Hi!
Also wenn ich das richtig verstanden habe, kann im HTML-Quelltext dann aber auch nur ein Bild referenziert werden, dass sich bereits online, und somit verfügbar unter einem URL, befindet, oder? Gäbe es denn auch die Möglichkeit, das einzubettende Bild mit der Mail (als Anhang?) zu versenden? Denn wenn das möglich wäre, könnte man doch auf dieses "Hier klicken um die blockierte Grafiken anzuzeigen" im Mailprogramm des Empfängers verzichten, oder?


schlecht sehr gut
1 2 3 4 5 6 7 8 9 10
Nur angemeldete User können Snippets bewerten.