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.
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", "Gü"));
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);
}
}
}
2 Kommentare zum Snippet