MailMessage mit Dateianhang und alternate body klappt nicht ...

03/02/2009 - 21:48 von Nils Keller | Report spam
Hallo zusammen,

hier versuche in einem Programm von mir mails zu verschicken die einen
Dateianhang haben der Plain/Text Mailtext kommt auch an aber die HTML
Variante des Mailtextes kommt nicht an.
Was mache ich falsch, habe ich nur einen denk Fehler?
Hier mal ein Demo Quelltext womit es nicht geht:

MailAddress mailTo;
MailAddress mailFrom;
MailMessage mail = null;
Attachment data = null;
ContentDisposition disposition;
SmtpClient smtp;
docToSend = @"C:\test\100-10001056-200918-58617117.pdf";

mailFrom = new MailAddress(postbox@host.com, "Automailer");
mailTo = new MailAddress(hans@dampf.de, "Hans Dampf");
String Subject = "Standart Betreff";
// Create the file attachment for this e-mail message.
data = new Attachment(docToSend, MediaTypeNames.Application.Octet);
// Add time stamp information for the file.
disposition = data.ContentDisposition;
disposition.CreationDate = System.IO.File.GetCreationTime(docToSend);
disposition.ModificationDate = System.IO.File.GetLastWriteTime(docToSend);
disposition.ReadDate = System.IO.File.GetLastAccessTime(docToSend);

String textBody = "This is an autogenerated information for" +
Environment.NewLine + "< " + toName + " >" + Environment.NewLine +
"From: Bla Bla Bla" + Environment.NewLine + "Adresse";
// Construct the alternate body as HTML.
String htmlbody = "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0
Transitional//EN\">";
htmlbody += "<HTML><HEAD><META http-equiv=Content-Type
content=\"text/html; charset=iso-8859-1\"></HEAD>";
htmlbody += "<body><div>";
htmlbody += "<p><font face=Arial color=black>This is an auto generated
information for</font></p>";
htmlbody += "<p><font face=Arial color=black>&lt;&nbsp;&nbsp;" + toName
+ "&nbsp;&nbsp;&gt;</font></p>";
htmlbody += "<p><font face=Arial color=black>From: Bla Bla Bla</font></p>";
htmlbody += "<p><font face=Arial size=8 color=black>Adresse</font></p>";
htmlbody += "</div></body></HTML>";

// Add the alternate body to the message.
AlternateView alternate AlternateView.CreateAlternateViewFromString(htmlbody);
mail = new MailMessage(mailFrom, mailTo);
mail.Subject = Subject;
mail.SubjectEncoding = System.Text.Encoding.UTF8;
mail.Body = textBody;
mail.BodyEncoding = System.Text.Encoding.UTF8;
mail.AlternateViews.Add(alternate);
// Add the file attachment to this e-mail message.
mail.Attachments.Add(data);

int port = 25;
smtp = new SmtpClient(localhost, port);
smtp.Credentials = new NetworkCredential(SMTPUser, SMTPPass);
smtp.Send(mail);
data.Dispose();
 

Lesen sie die antworten

#1 Peter Brightman
04/02/2009 - 01:25 | Warnen spam
Nils Keller schrieb:
Hallo zusammen,

hier versuche in einem Programm von mir mails zu verschicken die einen
Dateianhang haben der Plain/Text Mailtext kommt auch an aber die HTML
Variante des Mailtextes kommt nicht an.
Was mache ich falsch, habe ich nur einen denk Fehler?



hi Nils,

liegt es vielleicht da dran dass Du einen text/plain sowie text/html
part hast? Normalerweise muss dann der mimetype der mail
multipart/alternative lauten bzw. erst mal multipart/mixed wenn noch
andere parts wie etwa attachments dabei sind. Hast Du mal geschaut was
für ein mimetype in der mail gesetzt wurde die Du empfangen hast?
Eventuell musst du diesen mimetype explizit setzen.

Gruß,
Peter

Ähnliche fragen