Hallo zusammen,
ich möchte gern Emails (intern) verschicken, schön mit Corporate Identity (Logo und Styles). Message Body ist HTML und Encoding ist UTF-8. Funktionieren tut das ganze auch schon soweit via .Net 2.0 / C# / System.Net.MailMessage.
Ich generiere mittels XSLT ein HTML Dokument mit folgendem Inhalt (gekürzt):
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>Report</title>
<link rel="stylesheet" href="cid:styles" type="text/css" media="screen" />
</head>
<body>
<img src="cid:companylogo" style="width:994px;height:96px;border:none;" alt="company logo" />
<h2>Hello !!</h2>
</body>
</html>
Das ganze verschicke ich so
using (MailMessage mm = new MailMessage())
{
mm.To.Add(this.recipientList);
mm.IsBodyHtml = true;
mm.Subject = "Hello ... testing multipart messages";
mm.SubjectEncoding = Encoding.UTF8;
// define alternate view
AlternateView avHtml = new AlternateView(context.Server.MapPath("./Resources/TestEmail.html"), new ContentType("text/html; charset=utf-8"));
// create the styles resource
LinkedResource lsStyles = new LinkedResource(context.Server.MapPath("./gfx/styles.css"), new ContentType("text/css; charset=utf-8"));
lsStyles.ContentId = "styles";
avHtml.LinkedResources.Add(lsStyles);
// create the logo resource
LinkedResource lsLogo = new LinkedResource(context.Server.MapPath("./gfx/cp_header.jpg"), MediaTypeNames.Image.Jpeg);
lsLogo.ContentId = "companylogo";
lsLogo.TransferEncoding = TransferEncoding.Base64;
avHtml.LinkedResources.Add(lsLogo);
// text view
AlternateView avText = AlternateView.CreateAlternateViewFromString("Hello ... in plain text", Encoding.UTF8, MediaTypeNames.Text.Plain);
// add the views to the mail message object
mm.AlternateViews.Add(avHtml);
mm.AlternateViews.Add(avText);
// send off
smtp.Send(mm);
// dispose
}
- Mail kommt an
- Mail wird in Outlook 2003 gelesen
- Mail wird im HTML Modus angezeigt
- Company Logo und Styles kommen mit (wenn ich die cid anders bennene, bekomme ich die beiden Sachen als att124.jpg usw)
- Company Logo wird angezeigt
Problem: -> Styles aus dem CSS-Stylesheet File werden nicht angewendet
Stellt sich die Frage:
- liegt es am Outlook 2003
- liegt es am Versenden mit LinkedResource (Fehler von meiner Seite?)
- liegt es an .net (System.Net.MailMessage)
- funktioniert dies für Stylesheets bzw. link rel="Stylesheet" gar nicht
Hat da evt jemand von euch eine Idee, wie man das Problem beheben könnte?
Vielen Dank vorab.
Frank