Я собрал следующий код из статьи на этом сайте http://authors.aspalliance.com/stevesmith/articles/dotnetemailwebsite.asp, которую я нашел через заданный здесь вопрос «Лучший способ создать сложное html-сообщение электронной почты с asp.net, как?», И из этогостатья Как печатать в ASP.NET 2.0 http://www.dotnetcurry.com/ShowArticle.aspx?ID=92. Я использую панель asp.net, чтобы я мог получать только части страницы, а не всю страницу, чтобы вы могли отправить таблицу, в моем случае, безнеобходимость отправить кнопку, которая активирует отправку электронного письма или любой другой части страницы, которую я не хочу отправлять.ПРИМЕЧАНИЕ. Любые свойства стиля для отправляемых элементов управления должны быть установлены непосредственно для элементов управления, а не через cssclass.Это код:
//Here I extract html of the control to be sent
StringWriter stringWrite = new StringWriter();
System.Web.UI.HtmlTextWriter htmlWrite = new System.Web.UI.HtmlTextWriter(stringWrite);
//pnlRpt is an asp.net panel containing the controls to be sent
pnlRpt.RenderControl(htmlWrite);
string htmlStr = stringWrite.ToString();
//Here I send the message whith the html of the table
MailMessage msg = new MailMessage();
msg.From = new MailAddress("EmailOfSender");
msg.To.Add("emailOfReceiver");
msg.Subject = "your subject";
msg.Body = htmlStr;
msg.IsBodyHtml = true;
SmtpClient smtp = new SmtpClient(mailServer);
smtp.Credentials = new System.Net.NetworkCredential(userName, usePass);
smtp.Send(msg);
msg.Dispose();
С этим кодом я отправил таблицу asp.net, сгенерированную и заполненную в фоновом коде, и она отлично работала.