| 

.NET C# Java Javascript Exception

3
Hallo, bräuchte dringend mal eine Hilfe von jemanden der sich in C# auskennt.
Möchte eine erstellte Tabelle aus dem Programm über Outlook in html format versenden.
Dies funktioniert auch...bis auf das ich im Outlook die Tabelle nicht richtig angezeigt bekomme.

Hier ein Auszug aus meinem c#
StringBuilder strB = new StringBuilder();
strB.Clear();
//create html & table
strB.AppendLine("<html><body><center><" +
"table border='1' cellpadding='0' cellspacing='0'>");
strB.AppendLine("<tr>");
//cteate table header

for (int i = 0; i < dgv_Bergen_intern_bestellung.Columns.Count; i++)
{
strB.AppendLine("<td align='center' valign='middle'>" +
dgv_Bergen_intern_bestellung.Columns[i].HeaderText + "</td>");
}
//create table body
strB.AppendLine("<tr>");
for (int i = 0; i < dgv_Bergen_intern_bestellung.Rows.Count; i++)
{
strB.AppendLine("<tr>");
foreach (DataGridViewCell dgvc in dgv_Bergen_intern_bestellung.Rows[i].Cells)
{
strB.AppendLine("<td align='center' valign='middle'>" +
dgvc.Value.ToString() + "</td>");
}
strB.AppendLine("</tr>");

}
//table footer & end of html file
strB.AppendLine("</table></center></body></html>");

Microsoft.Office.Interop.Outlook.NameSpace lo_NSpace;
Microsoft.Office.Interop.Outlook.MAPIFolder lo_Folder;
Microsoft.Office.Interop.Outlook.Application lo_OutApp;
Microsoft.Office.Interop.Outlook.MailItem lo_Item;

lo_OutApp = new Microsoft.Office.Interop.Outlook.Application();

lo_NSpace = lo_OutApp.GetNamespace("MAPI");

lo_Folder = lo_NSpace.GetDefaultFolder(Microsoft.Office.Interop.Outlook.OlDefaultFolders.olFolderSentMail);

lo_Item = (Microsoft.Office.Interop.Outlook.MailItem)lo_Folder.Items.Add(Microsoft.Office.Interop.Outlook.OlItemType.olMailItem);

lo_Item.To = EmailTo;


lo_Item.Subject = Subject;

//NachrichtenFormat
lo_Item.BodyFormat = Microsoft.Office.Interop.Outlook.OlBodyFormat.olFormatHTML;
MailBody = strB.ToString();
lo_Item.Body = MailBody;
//Anzeigen modal
lo_Item.Display(false);


//Senden der Mail
lo_Item.Send();
return;


und so sieht es jetzt in der mail aus:

<html><body><center><table border='1' cellpadding='0' cellspacing='0'> 
<tr>
<td align='center' valign='middle'>Teilenummer</td>
<td align='center' valign='middle'>Bezeichnung</td>
<td align='center' valign='middle'>Stückzahl</td>
<td align='center' valign='middle'>Bestelldatum</td>
<td align='center' valign='middle'>Fertigungsdatum</td>
<td align='center' valign='middle'>Besonderheiten</td>
<tr>
</table></center></body></html>


Woran könnte das liegen...kann mir jemand helfen??? Weiß nicht mehr weiter...

Grüße

Jens G.
18.06.2012
jenson.g 13 4
Floyd 14,5k 3 9
3 Antworten
2
Hi Jens,

das MailItem sollte auch das Property HTMLBody haben.

Eigentlich sollte folgende Zeile schon reichen:
lo_Item.Body = MailBody; änderst du in lo_Item.HTMLBody = MailBody; um

Vielleicht hilft dir auch folgender Link ein wenig weiter:
http://support.microsoft.com/kb/310262
18.06.2012
tigerentchen 92 5
0
klasse.......es geht...Mensch du warst meine Rettung. Hab so lange gesucht und nichts gefunden. Genauso habe ich mir das vorgestellt.s

Vielen vielen Dank!!!!! ;o)))))

Grüße Jens
18.06.2012
jenson.g 13 4
Gern geschehen. Dafür sind wir und das Forum ja da ;)
tigerentchen 18.06.2012
0
Und wenn Du sichergehen möchtest, dass das auch immer wie gewünscht angezeigt wird, solltest Du Deinen HTML - Code noch valide machen. In Deinem HTML - Beispiel fehlt das schliessende TR - Element, dafür hast Du noch mal ein Öffnendes darin.

In deinem SourceCode fügst Du an 3 Stellen einen öffnendes Element ein:
strB.AppendLine("<tr>");

Aber nur einmal ein schliessendes Element:
strB.AppendLine("</tr>");


=> http://de.selfhtml.org/html/tabellen/aufbau.htm
18.06.2012
Xantiva 2,3k 1 9

Stelle deine .net-Frage jetzt!