I am trying to display a data table in a mail send via gmail, but gmail does not display the html file, the message is displayed as text.
Here is my code to tansform the data Table to html file
static void Main(string[] args)
{
Procedures procedures = new Procedures();
DataTable info = new DataTable();
if (procedures.GT99_Total_Ventas_PORSECTOR(info) == true)
{
SendMail sendMail = new SendMail();
sendMail.Send("Report22", toHTML_Table(info));
}
}
public static string toHTML_Table(DataTable dt)
{
if (dt.Rows.Count == 0) return ""; // enter code here
StringBuilder builder = new StringBuilder();
builder.Append("<html>");
builder.Append("<head>");
builder.Append("<title>");
builder.Append("Page-");
builder.Append(Guid.NewGuid());
builder.Append("</title>");
builder.Append("</head>");
builder.Append("<body>");
builder.Append("<table border='1px' cellpadding='5' cellspacing='0' ");
builder.Append("style='border: solid 1px Silver; font-size: x-small;'>");
builder.Append("<tr align='left' valign='top'>");
foreach (DataColumn c in dt.Columns)
{
builder.Append("<td align='left' valign='top'><b>");
builder.Append(c.ColumnName);
builder.Append("</b></td>");
}
builder.Append("</tr>");
foreach (DataRow r in dt.Rows)
{
builder.Append("<tr align='left' valign='top'>");
foreach (DataColumn c in dt.Columns)
{
builder.Append("<td align='left' valign='top'>");
builder.Append(r[c.ColumnName]);
builder.Append("</td>");
}
builder.Append("</tr>");
}
builder.Append("</table>");
builder.Append("</body>");
builder.Append("</html>");
return builder.ToString();
}
But when i recive the file in gmail i just see the plain text no the table
<html><head><title>Page-6e3549a9-b725-4325-bf72-c70f06f09a9e</title></head><body><table border='1px' cellpadding='5' cellspacing='0' style='border: solid 1px Silver; font-size: x-small;'><tr align='left' valign='top'><td align='left' valign='top'><b>Total</b></td><td align='left' valign='top'><b>Sector</b></td><td align='left' valign='top'><b>SectorVenta</b></td></tr><tr align='left' valign='top'><td align='left' valign='top'>757062950591,570</td><td align='left' valign='top'>11</td><td align='left' valign='top'>11-Calzados</td></tr><tr align='left' valign='top'><td align='left' valign='top'>61837742616,000</td><td align='left' valign='top'>12</td><td align='left' valign='top'>12-Marroquinería</td></tr><tr align='left' valign='top'><td align='left' valign='top'>9797449070,000</td><td align='left' valign='top'>13</td><td align='left' valign='top'>13-Bazar</td></tr><tr align='left' valign='top'><td align='left' valign='top'>117219098406,000</td><td align='left' valign='top'>14</td><td align='left' valign='top'>14-Prendas de Vestir</td></tr><tr align='left' valign='top'><td align='left' valign='top'>1140370260,000</td><td align='left' valign='top'>15</td><td align='left' valign='top'>15-Juguetes</td></tr><tr align='left' valign='top'><td align='left' valign='top'>20760307536,000</td><td align='left' valign='top'>16</td><td align='left' valign='top'>16-Accesorios</td></tr><tr align='left' valign='top'><td align='left' valign='top'>62053668890,000</td><td align='left' valign='top'>17</td><td align='left' valign='top'>17-Cosméticos</td></tr><tr align='left' valign='top'><td align='left' valign='top'>26462500,000</td><td align='left' valign='top'>18</td><td align='left' valign='top'>18-Ferretería</td></tr><tr align='left' valign='top'><td align='left' valign='top'>21847354730,000</td><td align='left' valign='top'>21</td><td align='left' valign='top'>21-Hogar</td></tr><tr align='left' valign='top'><td align='left' valign='top'>5082512450,000</td><td align='left' valign='top'>22</td><td align='left' valign='top'>22-Deportes</td></tr><tr align='left' valign='top'><td align='left' valign='top'>1157622000,000</td><td align='left' valign='top'>23</td><td align='left' valign='top'>23-Bebés</td></tr><tr align='left' valign='top'><td align='left' valign='top'>182475126340,000</td><td align='left' valign='top'>27</td><td align='left' valign='top'>27-Alimentos</td></tr><tr align='left' valign='top'><td align='left' valign='top'>33726265182,000</td><td align='left' valign='top'>99</td><td align='left' valign='top'>99-Otros</td></tr></table></body></html>
This is how i send the email
public class SendMail
{
private Email emailConfiguration;
public SendMail()
{
emailConfiguration = new Email();
}
public bool Send(string subject, string message)
{
try
{
var client = new SmtpClient()
{
Host = emailConfiguration.SMTP,
Port = Int32.Parse(emailConfiguration.PortMail),
EnableSsl = true,
DeliveryMethod = SmtpDeliveryMethod.Network,
UseDefaultCredentials = false,
Credentials = new NetworkCredential()
{
UserName = emailConfiguration.FromMail,
Password = emailConfiguration.FromPasswordMail
}
};
MailAddress FromEmail = new MailAddress(emailConfiguration.FromMail, emailConfiguration.FromName);
MailAddress ToEmail = new MailAddress(emailConfiguration.ToMail, emailConfiguration.ToName);
MailMessage Message = new MailMessage()
{
From = FromEmail,
Subject = subject,
Body = message,
};
Message.To.Add(ToEmail);
client.Send(Message);
return true;
}
catch
{
return false;
}
}
}
EDIT: Added who i send the mail.