2015-07-11 95 views
0

我必須通過SMTP服務器發送郵件。我可以發送單個值。但是,我想發送List<>值作爲郵件正文以表格格式或其他結構。我包括我的代碼如下:發送List <>值與身體在郵件 - SMTP服務器

MailMessage mailObj = new MailMessage("[email protected]", "[email protected]", "Reg : send mail", 
"Emp Name :" + "Emp1" + Environment.NewLine + "Date From : " + Mon + "Date To : " + Fri); 
SmtpClient SMTPServer = new SmtpClient("smtp.gmail.com", ***); 
SMTPServer.Host = "smtp.gmail.com"; 
SMTPServer.EnableSsl = true; 
SMTPServer.Timeout = 200000; 
SMTPServer.Credentials = new System.Net.NetworkCredential("[email protected]", "******"); 
SMTPServer.Send(mailObj); 

我有我的價值觀的名單如下:

List<TimesheetValues> mailBody = new SampleDAO().GetDataForMail(dt1, satDate); 

我怎麼能包括與車身和發送該List<>值?

我嘗試以下操作:

List<TimesheetValues> Msg = new List<TimesheetValues>(); string strMsg = ""; int n=1; 
      foreach(var item in mailBody) 
      { 
       strMsg = strMsg + "<table><tr><td>" + n + "</td><td>" + item.Project_Name + "</td><td>" + item.Task_Name + "</td><td>" + item.Notes + "</td><td>" + item.Hrs_Worked + "</td></tr></table>";     
       n++; 
      } 
      strMsg = strMsg + "</br>"; 
      MailMessage mailObj = new MailMessage("[email protected]", "[email protected]", "Reg : Timesheet", 
       "Emp Name :" + "Emp1" + Environment.NewLine + "Date From : " + Mon + "Date To : " + Fri);    

      mailObj.Body = "Emp Name : " + "Emp1" + Environment.NewLine + "Date From : " + Date2 + " Date To : " + Date6 + Environment.NewLine + strMsg; 

現在我得到的所有記錄,但我已經在記錄TR TD標籤,且不顯示爲表。我該如何實現這個目標?

誰能幫助克服這一..提前 謝謝...

回答

0

我嘗試用下面這個:

string strMsg = "" 
strMsg = timsheetMail + " <table style=\"border-collapse:collapse; text-align:center;\" border=\"1\"><tr><td> Date </td><td> Working Hours </td><td> Task </td><td>Comments</td></tr>";  

List<TimesheetValues> Msg = new List<TimesheetValues>(); int n=1; 
      foreach(var item in mailBody) 
      { 
timesheetData = new TimesheetDetailModel(); 
       timesheetData.Task_Id = matrix.Task_Id; 
       timesheetData.Hours = matrix.Hours; 
       //timesheetData.Date = matrix.Date.Date; 
       timesheetData.Date = matrix.Date.AddDays(1); 
       timesheetData.EmpId = Convert.ToInt32(Session["EmpId"].ToString()); 
       timesheetData.Notes = matrix.Notes; 

       strMsg = strMsg+ " <tr><td> " + timesheetData.Date.ToString("dd/MM/yyyy") + "</td><td>" + timesheetData.Hours + "</td><td>" + task + "</td><td>" + timesheetData.Notes + "</td></tr>";     
       n++; 
      } 
      strMsg = strMsg + "</table>"; 

它的工作好現在..

0

如果你想讀串入一個列表中再次,序列化是更好的。

using Newtonsoft.Json; 
var json = JsonConvert.SerializeObject(yourList); 
mailObj.Body = json; 

您也可以反序列化的另一面:

List<string> g = JsonConvert.DeserializeObject<List<string>>(body); 
相關問題