2013-11-08 7 views
0

У меня есть эта задача, когда мне нужно взять три столбца из таблицы и их строк и отправить их моему боссу в очень аккуратном и чистом профессиональном методе. Мне нужна помощь, потому что метод, которым я являюсь используя ниже, посылает крайне абсурдную и не выровненную форму электронной почты. Можете ли вы, ребята, помочь мне преобразовать это в HTML и правильный формат, чтобы он выглядел аккуратно.Преобразование Smtp Client Mail message в HTML

static void Main(string[] args) 
{ 
    SqlConnection myConnection = new SqlConnection("mydatasourceinfo"); 
    // Connect to the SQL database using a SQL SELECT query to get all 

    string sqlStr = " select * from thedifference "; 
    SqlDataAdapter myCommand = new SqlDataAdapter(sqlStr, myConnection); 

    // Create and fill a DataSet. 
    DataSet ds = new DataSet(); 
    myCommand.Fill(ds); 

    DataView source = new DataView(ds.Tables[0]); 
    SmtpClient smtp = new SmtpClient(); 

    string from = "xxx.com"; 
    string to = "xxx.com"; 
    string subject = "data differences"; 
    string body = "ClientName  |  Salesdiff  |  CallsDiff"; 

    foreach (DataRow Row in ds.Tables[0].Rows) 
    { 
     body = body + " " + "\n" + Row["clientname"] + " " + "          " + Row["salesdiff"] + "                         " + Row["callsdiff"] + "\n"; 
    } 

    smtp.Host = "xxx.com"; 

    smtp.Send(from, to, subject, body);   
} 
+0

Вы установили ['MailMessage.IsBodyHtml'] (http://msdn.microsoft.com/en-us/library/system.net.mail.mailmessage.isbodyhtml%28v=vs.110%29.aspx) свойство 'true'? –

ответ

0

Вы должны установить IsBodyHtml в true.

 var htmlBody = new StringBuilder(); 
     htmlBody.Append("<table>"); 
     // TODO: generate the message content 
     htmlBody.Append("</table>"); 

     var msg = new MailMessage(); 
     msg.IsBodyHtml = true; 
     msg.From = ""; 
     msg.Body = htmlBody.ToString(); 

     var smtp = new SmtpClient(); 
     smtp.Send(msg); 

Чтобы создать хорошее сообщение, вы можете использовать обычные HTML-тег, как table или p (впрочем, HTML и CSS имеют ограничение по электронной почте, так как много клиентов электронной почты не поддерживают их должным образом).

+0

stmp не дает опции как isbodyhtml true. Это проблема. –

+0

Да, извините. Я изменил свой ответ в соответствии с этим. – laszlokiss88